Cannot create Dialog Box con Resource Workshop
Posted: Fri May 18, 2007 11:43 pm
Hola, de nuevo aqui molestando a todos ustedes..
Estoy empezando con los 32 bits y tengo problemas al mostrar una dialogo en el cual pido contraseña para entrar, ya estuve investigando en la red y supe que los controles de borland no son para 32 bits por los cual ya quite el unico que tenia, pero sigo sin poder mostrar el dialogo poruqe marca error:
Application
===========
Path and name: C:\SISA2007\SISA2007.Exe (32 bits)
Size: 2,083,840 bytes
Time from start: 0 hours 0 mins 0 secs
Error occurred at: 18/05/2007, 18:26:41
Error description: Error FiveWin/3 Cannot create Dialog Box:
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿResource: Acceso
Stack Calls
===========
Called from: => CREATEDLGERROR(0)
Called from: DIALOG.PRG => TDIALOG:ACTIVATE(0)
Called from: => LGETPASSWORD(222)
Called from: sisa2007.prg => MAIN(40)
este el el código que uso:
STATIC FUNCTION lGetPassword()
LOCAL oDlg,oBmp,oCbx,oGet,oBtn1,oBtn2,oBit,oIco,oBmpx,oFnt,oCur
LOCAL lSalir := .F.
LOCAL nTries := 0
LOCAL tPassword := SPACE (15)
LOCAL hDC := oDlg
DEFINE CURSOR oCur RESOURCE "Mano"
DEFINE FONT oFnt NAME "Arial" WEIGHT 8
DEFINE DIALOG oDlg RESOURCE "Acceso" TITLE "Control de Acceso al Sistema" FONT oFnt
REDEFINE BITMAP oBmp ID 052 FILENAME ".\SUPPORT\ENGINE\IMAGHAND.SUP" OF oDlg
REDEFINE BITMAP oBmpx ID 600 FILENAME ".\SUPPORT\ENGINE\IMAINTRO.SUP" OF oDlg Adjust
REDEFINE COMBOBOX oCbx VAR nItem ID 101 Of oDlg UPDATE ITEMS oApp:cUsuario STYLE CBS_DROPDOWN
REDEFINE GET oGet VAR tPassword ID 102 OF oDlg PICTURE "@!"
REDEFINE BUTTON oBtn1 ID 400 OF oDlg ACTION (lSalir:=.T. , nTries++ , ;
lSi := ALLTRIM( tPassword ) == ALLTRIM( oApp:cPassword[nItem] ), ;
IF( nTries > 3 .OR. lSi , oDlg:END(), ;
( MsgStop( "¿ OLVIDO SU CONTRASEÑA..?"+CRLF+CRLF+;
"Haga click en el botón < RECORDAR > para ver "+CRLF+;
"su recordatorio según el Nombre de Usuario... ", "¡ Acceso Denegado !" ), lSalir:=.F., oGet:SetFocus(.T.) ) ) )
REDEFINE BUTTON oBtn2 ID 415 OF oDlg ACTION (lSalir:=.T., oDlg:END())
REDEFINE BTNBMP oBit ID 104 OF oDlg RESOURCE "RECORDAR" ACTION ( MsgInfo("Palabra o frase para Recordar su Clave de Acceso: "+CRLF+CRLF+ ALLTRIM( oApp:cRecordar[nItem] ),"Recordar Clave se Acceso"), oGet:SetFocus(.T.) )
oDlg:lHelpIcon := .F.
oBit:cToolTip := "Recordar"+CRLF+"Contaseña"
oBmp:lTransparent := .T.
oBtn1:oCursor := oCur
oBtn2:oCursor := oCur
oBit:oCursor := oCur
ACTIVATE DIALOG oDlg CENTERED VALID (lSalir) ON INIT( SetWindowPos( oDlg:hWnd, -1, 0, 0, 0, 0, 3 ) )
oFnt:END()
oBmp:END()
oBmpX:END()
oCur:END()
RETURN (lSi)
el díalogo estaba en una dll de 16 bits y la tengo en un rc para incrustarlo en el exe.
este es el rc del dialogo
ACCESO DIALOG 241, 76, 174, 253
STYLE DS_MODALFRAME | 0x4L | WS_POPUP | WS_CAPTION
FONT 8, "MS Sans Serif"
{
COMBOBOX 101, 85, 177, 79, 76, CBS_DROPDOWNLIST | CBS_NOINTEGRALHEIGHT | CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP
EDITTEXT 102, 85, 195, 78, 12, ES_UPPERCASE | ES_PASSWORD | WS_BORDER | WS_TABSTOP
CONTROL "Button", 400, "BorBtn", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 18, 225, 51, 17
CONTROL "TBtnBmp", 104, "TBtnBmp", WS_CHILD | WS_VISIBLE | WS_BORDER, 131, 222, 25, 23
LTEXT "Usuario:", 29, 58, 180, 26, 8, SS_NOPREFIX | WS_GROUP
LTEXT "Contraseña:", 30, 46, 196, 38, 8
CONTROL "TBitmap", 52, "TBitmap", WS_CHILD | WS_VISIBLE, 11, 169, 34, 44
CONTROL "Button", 415, "BorBtn", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE, 75, 225, 51, 17
CONTROL "TBitMap", 600, "TBitMap", WS_CHILD | WS_VISIBLE | WS_BORDER, 17, 15, 140, 148
}
No se si es recomendable usar el Resource Workshop pra trabajar con rc, ayer baje el Pelles C pero no entiendo ni "j" es algo confunso y en ocaciones te muestra el rc con texto codificado y a veces los recursos incrustados, porfa digamne con que editor de recursos podría trabajar..?
Estoy empezando con los 32 bits y tengo problemas al mostrar una dialogo en el cual pido contraseña para entrar, ya estuve investigando en la red y supe que los controles de borland no son para 32 bits por los cual ya quite el unico que tenia, pero sigo sin poder mostrar el dialogo poruqe marca error:
Application
===========
Path and name: C:\SISA2007\SISA2007.Exe (32 bits)
Size: 2,083,840 bytes
Time from start: 0 hours 0 mins 0 secs
Error occurred at: 18/05/2007, 18:26:41
Error description: Error FiveWin/3 Cannot create Dialog Box:
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿResource: Acceso
Stack Calls
===========
Called from: => CREATEDLGERROR(0)
Called from: DIALOG.PRG => TDIALOG:ACTIVATE(0)
Called from: => LGETPASSWORD(222)
Called from: sisa2007.prg => MAIN(40)
este el el código que uso:
STATIC FUNCTION lGetPassword()
LOCAL oDlg,oBmp,oCbx,oGet,oBtn1,oBtn2,oBit,oIco,oBmpx,oFnt,oCur
LOCAL lSalir := .F.
LOCAL nTries := 0
LOCAL tPassword := SPACE (15)
LOCAL hDC := oDlg
DEFINE CURSOR oCur RESOURCE "Mano"
DEFINE FONT oFnt NAME "Arial" WEIGHT 8
DEFINE DIALOG oDlg RESOURCE "Acceso" TITLE "Control de Acceso al Sistema" FONT oFnt
REDEFINE BITMAP oBmp ID 052 FILENAME ".\SUPPORT\ENGINE\IMAGHAND.SUP" OF oDlg
REDEFINE BITMAP oBmpx ID 600 FILENAME ".\SUPPORT\ENGINE\IMAINTRO.SUP" OF oDlg Adjust
REDEFINE COMBOBOX oCbx VAR nItem ID 101 Of oDlg UPDATE ITEMS oApp:cUsuario STYLE CBS_DROPDOWN
REDEFINE GET oGet VAR tPassword ID 102 OF oDlg PICTURE "@!"
REDEFINE BUTTON oBtn1 ID 400 OF oDlg ACTION (lSalir:=.T. , nTries++ , ;
lSi := ALLTRIM( tPassword ) == ALLTRIM( oApp:cPassword[nItem] ), ;
IF( nTries > 3 .OR. lSi , oDlg:END(), ;
( MsgStop( "¿ OLVIDO SU CONTRASEÑA..?"+CRLF+CRLF+;
"Haga click en el botón < RECORDAR > para ver "+CRLF+;
"su recordatorio según el Nombre de Usuario... ", "¡ Acceso Denegado !" ), lSalir:=.F., oGet:SetFocus(.T.) ) ) )
REDEFINE BUTTON oBtn2 ID 415 OF oDlg ACTION (lSalir:=.T., oDlg:END())
REDEFINE BTNBMP oBit ID 104 OF oDlg RESOURCE "RECORDAR" ACTION ( MsgInfo("Palabra o frase para Recordar su Clave de Acceso: "+CRLF+CRLF+ ALLTRIM( oApp:cRecordar[nItem] ),"Recordar Clave se Acceso"), oGet:SetFocus(.T.) )
oDlg:lHelpIcon := .F.
oBit:cToolTip := "Recordar"+CRLF+"Contaseña"
oBmp:lTransparent := .T.
oBtn1:oCursor := oCur
oBtn2:oCursor := oCur
oBit:oCursor := oCur
ACTIVATE DIALOG oDlg CENTERED VALID (lSalir) ON INIT( SetWindowPos( oDlg:hWnd, -1, 0, 0, 0, 0, 3 ) )
oFnt:END()
oBmp:END()
oBmpX:END()
oCur:END()
RETURN (lSi)
el díalogo estaba en una dll de 16 bits y la tengo en un rc para incrustarlo en el exe.
este es el rc del dialogo
ACCESO DIALOG 241, 76, 174, 253
STYLE DS_MODALFRAME | 0x4L | WS_POPUP | WS_CAPTION
FONT 8, "MS Sans Serif"
{
COMBOBOX 101, 85, 177, 79, 76, CBS_DROPDOWNLIST | CBS_NOINTEGRALHEIGHT | CBS_DISABLENOSCROLL | WS_VSCROLL | WS_TABSTOP
EDITTEXT 102, 85, 195, 78, 12, ES_UPPERCASE | ES_PASSWORD | WS_BORDER | WS_TABSTOP
CONTROL "Button", 400, "BorBtn", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 18, 225, 51, 17
CONTROL "TBtnBmp", 104, "TBtnBmp", WS_CHILD | WS_VISIBLE | WS_BORDER, 131, 222, 25, 23
LTEXT "Usuario:", 29, 58, 180, 26, 8, SS_NOPREFIX | WS_GROUP
LTEXT "Contraseña:", 30, 46, 196, 38, 8
CONTROL "TBitmap", 52, "TBitmap", WS_CHILD | WS_VISIBLE, 11, 169, 34, 44
CONTROL "Button", 415, "BorBtn", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE, 75, 225, 51, 17
CONTROL "TBitMap", 600, "TBitMap", WS_CHILD | WS_VISIBLE | WS_BORDER, 17, 15, 140, 148
}
No se si es recomendable usar el Resource Workshop pra trabajar con rc, ayer baje el Pelles C pero no entiendo ni "j" es algo confunso y en ocaciones te muestra el rc con texto codificado y a veces los recursos incrustados, porfa digamne con que editor de recursos podría trabajar..?