Modificar dialogo en Recurso (Tiempo de ejecucion)
Modificar dialogo en Recurso (Tiempo de ejecucion)
Saludos foro,
Tengo un dialogo en recurso y me gustaria saber si existe alguna forma de modificarlo en tiempo de ejecucion, es decir, sin tener que utilizar PellesC y compilar otra vez.
Gracias de antemano y atento a sus comentarios
Tengo un dialogo en recurso y me gustaria saber si existe alguna forma de modificarlo en tiempo de ejecucion, es decir, sin tener que utilizar PellesC y compilar otra vez.
Gracias de antemano y atento a sus comentarios
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
- Antonio Linares
- Site Admin
- Posts: 42268
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Modificar dialogo en Recurso (Tiempo de ejecucion)
Que modificaciones necesitas hacerle ?
Re: Modificar dialogo en Recurso (Tiempo de ejecucion)
Hola maestro,
Si deseo cambiar el tamano de un Get o un Boton luego que este dialogo en recurso ya este compilado en el .exe
A eso me refiero
Si deseo cambiar el tamano de un Get o un Boton luego que este dialogo en recurso ya este compilado en el .exe
A eso me refiero
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Re: Modificar dialogo en Recurso (Tiempo de ejecucion)
simple, crea dos GETS y dos BOTONES en las mismas coordenadas con diferentes IDs, uno encima del otro, y después de ejecutar lo que tienes que hacer, haces invisible (Hide()) el GET/BUTTON que no quieres más, y hazlo visible (Show()) lo que aparezca más tarde.Compuin wrote:Hola maestro,
Si deseo cambiar el tamano de un Get o un Boton luego que este dialogo en recurso ya este compilado en el .exe
A eso me refiero
Comandos: Hide() y Show(), ok?
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: Modificar dialogo en Recurso (Tiempo de ejecucion)
No es asi de simple como lo planteas...karinha wrote:simple, crea dos GETS y dos BOTONES en las mismas coordenadas con diferentes IDs, uno encima del otro, y después de ejecutar lo que tienes que hacer, haces invisible (Hide()) el GET/BUTTON que no quieres más, y hazlo visible (Show()) lo que aparezca más tarde.Compuin wrote:Hola maestro,
Si deseo cambiar el tamano de un Get o un Boton luego que este dialogo en recurso ya este compilado en el .exe
A eso me refiero
Comandos: Hide() y Show(), ok?
Regards, saludos.
Me refiero a hacer ajustes a un boton o Get o cualquien otro objeto una vez compilado el recurso con el .exe
La idea es no tener que volver a usar PellesC para hacer el cambio y luego volver a compilar
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Re: Modificar dialogo en Recurso (Tiempo de ejecucion)
Pido disculpas, pero de esta manera, no tengo ni idea con Recursos. Ni siquiera tiene sentido para mí hacer algo así.
Regards, saludos.
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: Modificar dialogo en Recurso (Tiempo de ejecucion)
Para mi si lo tiene, por eso es que lo pregunto en el foro.karinha wrote:Pido disculpas, pero de esta manera, no tengo ni idea con Recursos. Ni siquiera tiene sentido para mí hacer algo así.
Regards, saludos.
Imaginate hacer las cosas que solo tengan sentido para algunos pero no para los clientes
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Re: Modificar dialogo en Recurso (Tiempo de ejecucion)
Si, claro. Tiens una imagen, algo concreto?Compuin wrote:Para mi si lo tiene, por eso es que lo pregunto en el foro.karinha wrote:Pido disculpas, pero de esta manera, no tengo ni idea con Recursos. Ni siquiera tiene sentido para mí hacer algo así.
Regards, saludos.
Imaginate hacer las cosas que olo tengan sentido para algunos pero no para los clientes
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: Modificar dialogo en Recurso (Tiempo de ejecucion)
Compuin:
Puedes cambiar alguna propiedad de cada control, o del control que tu quieras, como por ejemplo el alto y el ancho.
Todo dependerá de lo que quieras hacer.
Siempre tené en cuenta que el dialogo ya debe estar creado y todos sus controles tambien.
Aca un ejemplo funcional, aunque sin mucho sentido, pero muestra que se pueden modificar las data de los controles dentro de un dialogo por recurso
Este es el .rc
Puedes cambiar alguna propiedad de cada control, o del control que tu quieras, como por ejemplo el alto y el ancho.
Todo dependerá de lo que quieras hacer.
Siempre tené en cuenta que el dialogo ya debe estar creado y todos sus controles tambien.
Aca un ejemplo funcional, aunque sin mucho sentido, pero muestra que se pueden modificar las data de los controles dentro de un dialogo por recurso
Code: Select all | Expand
#Include "Fivewin.Ch"
#Include "TGraph.Ch"
FUNCTION DlgTest()
LOCAL oDlg, oFont, oGraph1, oGraph2
LOCAL aPers
aPers:={"Ene","Feb","Mar","Abr","May","Jun","Jul"}
DEFINE FONT oFont NAME "MS Sans Serif" SIZE 0,-10
DEFINE DIALOG oDlg RESOURCE "TG_Test" FONT oFont
oGraph1 := TGraph():ReDefine(100,oDlg)
With Object oGraph1
:nType := GRAPH_TYPE_PIE
:l3D := .T.
:lPopUp := .T.
:lLegends:= .F.
:nClrX := CLR_WHITE
:nClrY := CLR_WHITE
:nClrV := CLR_WHITE
:nMaxVal := 50
:cBitmap := ".\Bacalar.Bmp"
:AddSerie({-30,-20, 40, 15, 20, 5, 10},"Serie1",RGB(200, 50, 50),1,.T.)
:AddSerie({ 10, 5, 20, 15, 40,-20,-30},"Serie2",RGB( 50, 50,200),3,.F.)
:SetYVals(aPers)
End With
oGraph2 := TGraph():ReDefine(105,oDlg)
With Object oGraph2
:nType := GRAPH_TYPE_BAR
:l3D := .F.
:lPopUp := .T.
:lDegrade:= .T.
:lLegends:= .F.
:nMaxVal := 50
:nMinVal :=-40
:cBitmap := ".\Brush.Bmp"
:AddSerie({-30,-20, 40, 15, 20, 5, 10},"Serie1",CLR_GREEN ,2,.F.)
:AddSerie({ 10, 5, 20, 15, 40,-20,-30},"Serie2",RGB(218,181, 28),1,.F.)
:SetYVals(aPers)
End With
REDEFINE BUTTON ID 110 OF oDlg ACTION Accion(oDlg)
ACTIVATE DIALOG oDlg
oFont:End()
RETURN (NIL)
STATIC FUNCTION Accion(oDlg)
LOCAL oDlg1, oBot := ARRAY(3), lSalir := .f., lSumar := .f., i
DEFINE DIALOG oDlg1 FROM 1,1 TO 300, 600 PIXEL TITLE "Seleccione Ciudad y Comuna" OF oDlg
@ 20, 10 BUTTON oBot[1] PROMPT "Terminar" SIZE 30,10 PIXEL OF oDlg1 ACTION (lSalir := .t.,oDlg1:End())
@ 50, 10 BUTTON oBot[1] PROMPT "Sumar 10" SIZE 30,10 PIXEL OF oDlg1 ACTION (lSumar := .t.,oDlg1:End())
ACTIVATE DIALOG oDlg1 CENTERED
IF lSalir
oDlg:End()
ENDIF
IF lSumar
FOR i := 1 TO LEN(oDlg:aControls)
oDlg:aControls[i]:nHeight := oDlg:aControls[i]:nHeight + 10
oDlg:aControls[i]:nWidth := oDlg:aControls[i]:nWidth + 10
oDlg:aControls[i]:Refresh()
NEXT i
oDlg:nWidth := oDlg:nWidth + 10
ENDIF
RETURN nil
Code: Select all | Expand
/****************************************************************************
dlgtest.rc
produced by Borland Resource Workshop
*****************************************************************************/
LANGUAGE LANG_SPANISH,SUBLANG_SPANISH_MEXICAN
1 24 LOADONCALL MOVEABLE
{
'3C 3F 78 6D 6C 20 76 65 72 73 69 6F 6E 3D 22 31'
'2E 30 22 20 65 6E 63 6F 64 69 6E 67 3D 22 55 54'
'46 2D 38 22 20 73 74 61 6E 64 61 6C 6F 6E 65 3D'
'22 79 65 73 22 3F 3E 0D 0A 3C 61 73 73 65 6D 62'
'6C 79 20 78 6D 6C 6E 73 3D 22 75 72 6E 3A 73 63'
'68 65 6D 61 73 2D 6D 69 63 72 6F 73 6F 66 74 2D'
'63 6F 6D 3A 61 73 6D 2E 76 31 22 20 6D 61 6E 69'
'66 65 73 74 56 65 72 73 69 6F 6E 3D 22 31 2E 30'
'22 3E 0D 0A 3C 61 73 73 65 6D 62 6C 79 49 64 65'
'6E 74 69 74 79 0D 0A 20 20 20 20 76 65 72 73 69'
'6F 6E 3D 22 31 2E 30 2E 30 2E 30 22 0D 0A 20 20'
'20 20 70 72 6F 63 65 73 73 6F 72 41 72 63 68 69'
'74 65 63 74 75 72 65 3D 22 58 38 36 22 0D 0A 20'
'20 20 20 6E 61 6D 65 3D 22 55 74 6F 70 69 61 50'
'6C 61 6E 69 74 69 61 2E 4D 45 44 2E 4D 45 44 22'
'0D 0A 20 20 20 20 74 79 70 65 3D 22 77 69 6E 33'
'32 22 0D 0A 2F 3E 0D 0A 3C 64 65 73 63 72 69 70'
'74 69 6F 6E 3E 59 6F 75 72 20 61 70 70 6C 69 63'
'61 74 69 6F 6E 20 64 65 73 63 72 69 70 74 69 6F'
'6E 20 68 65 72 65 2E 3C 2F 64 65 73 63 72 69 70'
'74 69 6F 6E 3E 0D 0A 3C 64 65 70 65 6E 64 65 6E'
'63 79 3E 0D 0A 20 20 20 20 3C 64 65 70 65 6E 64'
'65 6E 74 41 73 73 65 6D 62 6C 79 3E 0D 0A 20 20'
'20 20 20 20 20 20 3C 61 73 73 65 6D 62 6C 79 49'
'64 65 6E 74 69 74 79 0D 0A 20 20 20 20 20 20 20'
'20 20 20 20 20 74 79 70 65 3D 22 77 69 6E 33 32'
'22 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 6E'
'61 6D 65 3D 22 4D 69 63 72 6F 73 6F 66 74 2E 57'
'69 6E 64 6F 77 73 2E 43 6F 6D 6D 6F 6E 2D 43 6F'
'6E 74 72 6F 6C 73 22 0D 0A 20 20 20 20 20 20 20'
'20 20 20 20 20 76 65 72 73 69 6F 6E 3D 22 36 2E'
'30 2E 30 2E 30 22 0D 0A 20 20 20 20 20 20 20 20'
'20 20 20 20 70 72 6F 63 65 73 73 6F 72 41 72 63'
'68 69 74 65 63 74 75 72 65 3D 22 58 38 36 22 0D'
'0A 20 20 20 20 20 20 20 20 20 20 20 20 70 75 62'
'6C 69 63 4B 65 79 54 6F 6B 65 6E 3D 22 36 35 39'
'35 62 36 34 31 34 34 63 63 66 31 64 66 22 0D 0A'
'20 20 20 20 20 20 20 20 20 20 20 20 6C 61 6E 67'
'75 61 67 65 3D 22 2A 22 0D 0A 20 20 20 20 20 20'
'20 20 2F 3E 0D 0A 20 20 20 20 3C 2F 64 65 70 65'
'6E 64 65 6E 74 41 73 73 65 6D 62 6C 79 3E 0D 0A'
'3C 2F 64 65 70 65 6E 64 65 6E 63 79 3E 0D 0A 3C'
'2F 61 73 73 65 6D 62 6C 79 3E 0D 0A 0D 0A 0D 0A'
}
TG_TEST DIALOG 49, 91, 409, 194
STYLE DS_MODALFRAME | 0x4L | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Distribución de saldos"
FONT 8, "MS Sans Serif"
LANGUAGE LANG_SPANISH, SUBLANG_SPANISH_MEXICAN
{
CONTROL "", 100, "TGraph", 0 | WS_CHILD | WS_VISIBLE, 5, 7, 196, 162
CONTROL "", 105, "TGraph", 0 | WS_CHILD | WS_VISIBLE, 207, 7, 196, 162
DEFPUSHBUTTON "&Salir", 110, 342, 174, 61, 14
__CLASS "Button"
}
Re: Modificar dialogo en Recurso (Tiempo de ejecucion)
Muchas gracias Cesar,
La mitad del problema esta respondido con este ejemplo, es decir, poder cambiar las propiedades de los objetos del Dialogo en Recursos sin hacerlo con PellesC.
Mi otra parte es como hacerlo sin tener que recompilar el codigo, es decir, cambio las propiedades del dialogo en el .PRG pero como lo hago en tiempo de ejecucion?
La mitad del problema esta respondido con este ejemplo, es decir, poder cambiar las propiedades de los objetos del Dialogo en Recursos sin hacerlo con PellesC.
Mi otra parte es como hacerlo sin tener que recompilar el codigo, es decir, cambio las propiedades del dialogo en el .PRG pero como lo hago en tiempo de ejecucion?
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
- Antonio Linares
- Site Admin
- Posts: 42268
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Modificar dialogo en Recurso (Tiempo de ejecucion)
Desde la claúsula ON INIT del diálogo puedes acceder a los controles y modificarlos antes de que se muestren
Posteriormente puedes hacerlo accediendo a oDlg:aControls, localizas el control que buscas y lo modificas
Posteriormente puedes hacerlo accediendo a oDlg:aControls, localizas el control que buscas y lo modificas
Re: Modificar dialogo en Recurso (Tiempo de ejecucion)
Maestro, Cesar
Muchas gracias a ambos
Muchas gracias a ambos
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code