Hello All & Cindy Too

I need some button click code that will transfer the contents of a JPEG (Iamge) file into a general or binary field in a table
I have a list of JPEGS in my listbox each of which is displayed as you move through the list. Waht I am trying to get the user to do is to select one such image and have it or the contents of it transferref into a general or binary field in my table

cheers John (UK)

RE: Image Click Code To Transfer A Jpeg Into A General Or Binary Field In A Table by Leemi

Leemi
Wed May 19 12:29:49 CDT 2004

Hi John:

In the long run, you are better off placing the data in a memo binary
field. Here is some code for use in both forms and reports.

REPORT
---------------
By using the MEMO BINARY field type and a UDF(), we can store .JPG files in
a table
field yet when the report runs have them read from DISK. Here's how:

(1) Create a table or cursor with a structure like this (plus any added
fields as
necessary)

FileName C (150)
MemBin MEMO(BINARY)

The command would be CREATE TABLE GENDBF (FileName c(150), MemoBin M
NOCPTRANS)

(2) Append .JPGs file into the MEMO(Binary) field using FILETOSTR() and set
the
filename field accordingly. For instance:

INSERT INTO CURSORNAME VALUES("ToothBrush.JPG", FILETOSTR(<PathToFile>))

(3) The FoxPro report will still need an OLEBOUND control on it to print
pictures,
but instead of pointing the OLEBOUND to a general field, point it FILE and
use this
as the expression:

MYUDF(FileName, MemoBin)

Where MyUDF is in some program made available via SET PROC and reads thusly:

PROCEDURE MYUDF(lpFileName, lpMemoBinFld)
LOCAL lcTemp as String
lcTemp = ADDBS(SYS(2023)) + "JPGTEMP\"
IF !DIRECTORY(lcTemp)
MD (lcTemp)
ENDIF
SET SAFETY OFF
STRTOFILE(lpMemoBinFld, lcTemp + lpFileName)
SET SAFETY ON
RETURN lcTemp + lpFileName

(4) Finally, preview/print the report. You may also want to fire some lines
like
this to clean up afterward:

ERASE ADDBS(SYS(2023)) + "JPGTEMP\*.jpg"
RD ADDBS(SYS(2023)) + "JPGTEMP"

The .PRG uses the code above and the .JPGs that come with W2K, so it should
run on
that OS with no problem.

----------------------------------------------------------------------------
---



FORM
----------
Let's assume we have the table created earlier:

FileName C (150)
MemBin MEMO(BINARY)

This form will display images from it:

PUBLIC oform1

oform1=NEWOBJECT("form1")
oform1.Show
RETURN


**************************************************
DEFINE CLASS form1 AS form
Top = 71
Left = 48
Height = 310
Width = 504
Caption = "Fox Image Demo"
Name = "Form1"

ADD OBJECT image1 AS image WITH ;
Height = 296, ;
Left = 3, ;
Top = 8, ;
Width = 381, ;
Name = "Image1"

ADD OBJECT cmdPrevious AS commandbutton WITH ;
Top = 27, ;
Left = 422, ;
Height = 27, ;
Width = 24, ;
Caption = "<", ;
Name = "cmdPrevious"

ADD OBJECT cmdNext AS commandbutton WITH ;
Top = 27, ;
Left = 446, ;
Height = 27, ;
Width = 24, ;
Caption = ">", ;
Name = "cmdNext"

ADD OBJECT cmdQuit AS commandbutton WITH ;
Top = 72, ;
Left = 405, ;
Height = 27, ;
Width = 84, ;
Caption = "Quit", ;
Name = "cmdQuit"

PROCEDURE getimage
LPARAMETERS lpFileName, lpMemoBinFld

LOCAL lcTemp AS STRING
lcTemp = ADDBS(SYS(2023)) + "JPGTEMP\"
IF !DIRECTORY(lcTemp)
MD (lcTemp)
ENDIF
SET SAFETY OFF
STRTOFILE(lpMemoBinFld, lcTemp + lpFileName)
SET SAFETY ON
RETURN lcTemp + lpFileName
ENDPROC

PROCEDURE Destroy
USE IN SELECT("PICTURES")
ERASE ADDBS(SYS(2023)) + "JPGTEMP\*.jpg"
RD ADDBS(SYS(2023)) + "JPGTEMP"
ENDPROC

PROCEDURE Load
CD JUSTPATH(SUBSTR(SYS(16),AT(' ',SYS(16),2)))
USE PICTURES
ENDPROC

PROCEDURE Init
THISFORM.Image1.Picture = ;
THIS.GetImage(Pictures.FileName, Pictures.MemBin)
ENDPROC

PROCEDURE cmdPrevious.Click
IF RECNO() <> 1
SKIP -1
THISFORM.Image1.Picture = ;
THISFORM.GetImage(Pictures.FileName, Pictures.MemBin)
THISFORM.REFRESH
ENDIF
ENDPROC

PROCEDURE cmdNext.Click
IF RECCOUNT() <> RECNO() AND !EOF()
SKIP
THISFORM.Image1.Picture = ;
THISFORM.GetImage(Pictures.FileName, Pictures.MemBin)
THISFORM.REFRESH
ENDIF
ENDPROC

PROCEDURE cmdQuit.Click
THISFORM.RELEASE
ENDPROC
ENDDEFINE
**************************************************

I hope this helps.

This posting is provided "AS IS" with no warranties, and confers no rights.

Sincerely,
Microsoft FoxPro Technical Support
Lee Mitchell

*-- VFP8 HAS ARRIVED!! --*
Read about all the new features of VFP8 here:
http://www.universalthread.com/VisualFoxPro/News/VFP8Release.asp
Purchase VFP8 here:
http://shop.microsoft.com/Referral/Productinfo.asp?siteID=11518

Keep an eye on the product lifecycle for Visual FoxPro here:
http://support.microsoft.com/default.aspx?id=fh;[ln];lifeprodv
- VFP5 Mainstream Support retired June 30th, 2003
- VFP6 Mainstream Support retires Sept. 30th, 2003


>Hello All & Cindy Too !

>I need some button click code that will transfer the contents of a JPEG
(Iamge) file into a
>general or binary field in a table.
>I have a list of JPEGS in my listbox each of which is displayed as you
move through the list.
>Waht I am trying to get the user to do is to select one such image and
have it or the contents of
>it transferref into a general or binary field in my table.

>cheers John (UK)