Modificar dialogo en Recurso (Tiempo de ejecucion)

Post Reply
Compuin
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Modificar dialogo en Recurso (Tiempo de ejecucion)

Post by Compuin »

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
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
User avatar
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)

Post by Antonio Linares »

Que modificaciones necesitas hacerle ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
Compuin
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Modificar dialogo en Recurso (Tiempo de ejecucion)

Post by Compuin »

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
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
User avatar
karinha
Posts: 7885
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: Modificar dialogo en Recurso (Tiempo de ejecucion)

Post by karinha »

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
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.

Comandos: Hide() y Show(), ok?

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Compuin
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Modificar dialogo en Recurso (Tiempo de ejecucion)

Post by Compuin »

karinha wrote:
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
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.

Comandos: Hide() y Show(), ok?

Regards, saludos.
No es asi de simple como lo planteas...

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
User avatar
karinha
Posts: 7885
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: Modificar dialogo en Recurso (Tiempo de ejecucion)

Post by karinha »

Pido disculpas, pero de esta manera, no tengo ni idea con Recursos. Ni siquiera tiene sentido para mí hacer algo así.

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Compuin
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Modificar dialogo en Recurso (Tiempo de ejecucion)

Post by Compuin »

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.
Para mi si lo tiene, por eso es que lo pregunto en el foro.

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
User avatar
karinha
Posts: 7885
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: Modificar dialogo en Recurso (Tiempo de ejecucion)

Post by karinha »

Compuin wrote:
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.
Para mi si lo tiene, por eso es que lo pregunto en el foro.

Imaginate hacer las cosas que olo tengan sentido para algunos pero no para los clientes
Si, claro. Tiens una imagen, algo concreto?

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
cmsoft
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Modificar dialogo en Recurso (Tiempo de ejecucion)

Post by cmsoft »

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

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
 
Este es el .rc

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"
}
 
Compuin
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Modificar dialogo en Recurso (Tiempo de ejecucion)

Post by Compuin »

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?
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
User avatar
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)

Post by Antonio Linares »

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
regards, saludos

Antonio Linares
www.fivetechsoft.com
Compuin
Posts: 1214
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

Re: Modificar dialogo en Recurso (Tiempo de ejecucion)

Post by Compuin »

Maestro, Cesar

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
Post Reply