@Ze Roberto: 3 alternativas que se me ocurren:
* Código del form en PRG
DEFINE CLASS TuForm AS Form
Caption = "Nombre"
MiProp1 = 1
MiProp2 = 2
ADD OBJECT txt01 AS TextBox WITH ControlSource = [c_Tabla.Campo]
PROCEDURE MiMetodo1
* Código
* .....
RETURN
PROCEDURE MiMetodo2
* Código
* .....
RETURN
ENDDEFINE
* Código para generar un SCX / VCX
ASELOBJ(xObj,1)
oForm = xObj[1]
WITH oForm
.Caption = "Nombre"
.AddProperty("MiProp1", 1)
.AddProperty("MiProp2", 2)
.AddObject("txt01", "TextBox")
WITH .txt01
.ControlSource = [c_Tabla.Campo]
ENDWITH
TEXT TO sStr NOSHOW
* PROCEDURE MiMetodo1
* Código
* .....
RETURN
ENDTEXT
.WriteMethod("MiMetodo1", sStr)
TEXT TO sStr NOSHOW
* PROCEDURE MiMetodo2
* Código
* .....
RETURN
ENDTEXT
.WriteMethod("MiMetodo2", sStr)
.SaveAs("TuForm.scx") && o .SaveAsClass
ENDWITH
Esto a primera instancia no debería ser muy difícil con expresiones regulares, salvo que tuvieras sub-objetos contenidos en objetos del form, ahi ya se complica.
HTH
Mario
Encontré un código para tomar foto usando la cámara web, pero esta asi
<<<Camara.txt>>>
|
#INCLUDE "tform.h" * <<< Crear un tform.h con los #define: * #DEFINE WM_CAP_START 0x0400 * #DEFINE WM_CAP_DRIVER_CONNECT (WM_CAP_START+10) * #DEFINE WM_CAP_DRIVER_DISCONNECT (WM_CAP_START+11) * #DEFINE WM_CAP_DRIVER_GET_CAPS (WM_CAP_START+14) * #DEFINE WM_CAP_SET_PREVIEW (WM_CAP_START+50) * #DEFINE WM_CAP_SET_OVERLAY (WM_CAP_START+51) * #DEFINE WM_CAP_SET_PREVIEWRATE (WM_CAP_START+52) * #DEFINE WM_CAP_GET_STATUS (WM_CAP_START+54) * #DEFINE WM_CAP_GRAB_FRAME (WM_CAP_START+60) DEFINE CLASS Tform As Form *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> *<DefinedPropArrayMethod> *m: *activate *m: *destroy *m: *getframe *m: *createcapturewindow *m: *driverconnect *m: *driverdisconnect *m: *releasecapturewindow *m: *msg *m: *iscaptureconnected *m: *getcapturedimensions *m: *startpreview *m: *stoppreview *</DefinedPropArrayMethod> *Width = 540 && para poner imagenes del click. Width = 340 Height = 310 Autocenter = .T. Caption = "Captura de Foto del Interno" MinButton = .F. MaxButton = .F. *Icon = wicoform hWindow = 0 hCapture = 0 capWidth = 0 capHeight = 0 capOverlay = 0 ADD OBJECT 'cmdGetFrame' As CommandButton WITH ; Default = .T. ,; Left = 10 ,; Top = 264 ,; Height = 27 ,; Width = 90 ,; Caption = "Tomar Foto" ,; Enabled = .F. *< END OBJECT: BaseClass="CommandButton" /> ADD OBJECT 'cmdPreview' As CommandButton With ; Default = .T. ,; Visible = .F. ,; Left = 100 ,; Top = 264 ,; Height = 27 ,; Width = 120 ,; Caption = "Video" ,; Enabled = .F. *< END OBJECT: BaseClass="CommandButton" /> ADD OBJECT 'cmdClose' As CommandButton WITH ; Cancel = .T. ,; Left = 202 ,; Top = 264 ,; Height = 27 ,; Width = 130 ,; Caption = " Salir " *< END OBJECT: BaseClass="CommandButton" /> PROCEDURE Activate IF THIS.hWindow = 0 DECLARE INTEGER GetFocus IN user32 THIS.hWindow = GetFocus() THIS.CreateCaptureWindow THIS.DriverConnect ENDIF ENDPROC PROCEDURE Destroy THIS.ReleaseCaptureWindow *!* DO FORM entradam.scx ENDPROC PROCEDURE cmdClose.Click THIS.Destroy ThisForm.Release ENDPROC PROCEDURE cmdGetFrame.Click ThisForm.GetFrame ENDPROC PROCEDURE cmdPreview.Click ThisForm.StartPreview ENDPROC PROCEDURE GetFrame #DEFINE WM_CAP_FILE_SAVEDIB (WM_CAP_START + 25) LOCAL lcFile lcFile = lnombrefoto + '.JPG' THIS.msg(WM_CAP_GRAB_FRAME, 0,0) THIS.msg(WM_CAP_FILE_SAVEDIB, 0, lcFile,1) ENDPROC PROCEDURE CreateCaptureWindow #DEFINE WS_CHILD 0x40000000 #DEFINE WS_VISIBLE 0x10000000 DECLARE INTEGER capCreateCaptureWindow IN avicap32; STRING lpszWindowName, LONG dwStyle,; INTEGER x, INTEGER y,; INTEGER nWidth, INTEGER nHeight,; INTEGER hParent, INTEGER nID THIS.hCapture = capCreateCaptureWindow("",; WS_CHILD+WS_VISIBLE,; 10,8,320,240, THIS.hWindow, 1) ENDPROC PROCEDURE DriverConnect THIS.msg(WM_CAP_DRIVER_CONNECT, 0,0) IF THIS.IsCaptureConnected() THIS.GetCaptureDimensions STORE .T. TO THIS.cmdGetFrame.Enabled,; THIS.cmdPreview.Enabled this.cmdPreview.Click ELSE THIS.Caption = THIS.Caption + ": failed to connect" ENDIF ENDPROC PROCEDURE DriverDisconnect THIS.msg(WM_CAP_DRIVER_DISCONNECT, 0,0) ENDPROC PROCEDURE ReleaseCaptureWindow IF THIS.hCapture <> 0 THIS.DriverDisconnect DECLARE INTEGER DestroyWindow IN user32 INTEGER hWnd = DestroyWindow(THIS.hCapture) THIS.hCapture = 0 thisform.Release ENDIF ENDPROC PROCEDURE msg(msg, wParam, lParam, nMode) IF THIS.hCapture = 0 RETURN ENDIF IF VARTYPE(nMode) <> "N" Or nMode = 0 DECLARE INTEGER SendMessage IN user32; INTEGER hWnd, INTEGER Msg,; INTEGER wParam, INTEGER lParam = SendMessage(THIS.hCapture, msg, wParam, lParam) ELSE DECLARE INTEGER SendMessage IN user32; INTEGER hWnd, INTEGER Msg,; INTEGER wParam, STRING @lParam = SendMessage(THIS.hCapture, msg, wParam, @lParam) ENDIF ENDPROC PROCEDURE IsCaptureConnected * analyzing fCaptureInitialized member of the CAPDRIVERCAPS structure #DEFINE CAPDRIVERCAPS_SIZE 44 LOCAL cBuffer, nResult cBuffer = Repli(Chr(0),CAPDRIVERCAPS_SIZE) THIS.msg(WM_CAP_DRIVER_GET_CAPS, Len(cBuffer), @cBuffer, 1) THIS.capOverlay = buf2dword(SUBSTR(cBuffer,5,4)) nResult = Asc(SUBSTR(cBuffer, 21,1)) RETURN (nResult<>0) ENDPROC PROCEDURE GetCaptureDimensions * reading uiImageWidth and uiImageHeight members * of the CAPSTATUS structure #DEFINE CAPSTATUS_SIZE 76 LOCAL cBuffer cBuffer = Repli(Chr(0), CAPSTATUS_SIZE) THIS.msg(WM_CAP_GET_STATUS, Len(cBuffer), @cBuffer, 1) THIS.capWidth = buf2dword(SUBSTR(cBuffer,1,4)) THIS.capHeight = buf2dword(SUBSTR(cBuffer,5,4)) ENDPROC PROCEDURE StartPreview THIS.msg(WM_CAP_SET_PREVIEWRATE, 30,0) THIS.msg(WM_CAP_SET_PREVIEW, 1,0) IF THIS.capOverlay <> 0 THIS.msg(WM_CAP_SET_OVERLAY, 1,0) ENDIF ENDPROC PROCEDURE StopPreview THIS.msg(WM_CAP_SET_PREVIEW, 0,0) ENDPROC ENDDEFINE |
@Ze Roberto: ¿y no te sirvió el .SC2 que mandé? Solamente lo tenés que pasar x el FoxBin2Prg y te queda el .SCX
HTH
Mario
Gracias de todas maneras, al final termine digitandolo todo.Saludos