Modificar dialogo en Recurso (Tiempo de ejecucion)

Modificar dialogo en Recurso (Tiempo de ejecucion)

Postby Compuin » Tue Dec 13, 2022 12:05 am

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

Re: Modificar dialogo en Recurso (Tiempo de ejecucion)

Postby Antonio Linares » Tue Dec 13, 2022 8:22 am

Que modificaciones necesitas hacerle ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Modificar dialogo en Recurso (Tiempo de ejecucion)

Postby Compuin » Tue Dec 13, 2022 3:20 pm

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

Re: Modificar dialogo en Recurso (Tiempo de ejecucion)

Postby karinha » Tue Dec 13, 2022 3:47 pm

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

Re: Modificar dialogo en Recurso (Tiempo de ejecucion)

Postby Compuin » Tue Dec 13, 2022 4:03 pm

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

Re: Modificar dialogo en Recurso (Tiempo de ejecucion)

Postby karinha » Tue Dec 13, 2022 4:22 pm

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

Re: Modificar dialogo en Recurso (Tiempo de ejecucion)

Postby Compuin » Tue Dec 13, 2022 4:23 pm

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

Re: Modificar dialogo en Recurso (Tiempo de ejecucion)

Postby karinha » Tue Dec 13, 2022 4:26 pm

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

Re: Modificar dialogo en Recurso (Tiempo de ejecucion)

Postby cmsoft » Tue Dec 13, 2022 4:38 pm

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 view  RUN

#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 view  RUN

/****************************************************************************


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"
}
 
User avatar
cmsoft
 
Posts: 1292
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Modificar dialogo en Recurso (Tiempo de ejecucion)

Postby Compuin » Tue Dec 13, 2022 5:03 pm

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

Re: Modificar dialogo en Recurso (Tiempo de ejecucion)

Postby Antonio Linares » Tue Dec 13, 2022 9:06 pm

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
User avatar
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Modificar dialogo en Recurso (Tiempo de ejecucion)

Postby Compuin » Tue Dec 13, 2022 9:09 pm

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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 44 guests