FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour dialogo resizable desde recursos?
Posts: 555
Joined: Wed Jul 31, 2013 01:14 PM
dialogo resizable desde recursos?
Posted: Tue Jan 28, 2025 04:26 AM

Hola amigos:

Estoy buscando unos ejemplos que habían con REDEFINE Dialog.....bla,bla

que se podían cambiar el tamaño incluyendo los elementos incluidos en el dialog.

Esto ya está pronto?

Ya se, estoy medio pesado y perdido, disculpen.

Saludos

Ruben Dario Fernandez

Dario Fernandez

FWH 2501, Harbour, MVS2022 Community, MySql & MariaDB, Dbf/Cdx VSCode.

Maldonado - Uruguay
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: dialogo resizable desde recursos?
Posted: Tue Jan 28, 2025 02:43 PM
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 555
Joined: Wed Jul 31, 2013 01:14 PM
Re: dialogo resizable desde recursos?
Posted: Tue Jan 28, 2025 06:00 PM

Gracias Joao, pero no es esto.

Incluso Mr. Rao publicó unos ejemplos con animaciones

pero ahora no los encuentro y no se si esta totalmente funcional.

Gracias

Saludos.

Ruben Dario Fernandez

Dario Fernandez

FWH 2501, Harbour, MVS2022 Community, MySql & MariaDB, Dbf/Cdx VSCode.

Maldonado - Uruguay
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: dialogo resizable desde recursos?
Posted: Tue Jan 28, 2025 06:33 PM
Esto?

Relative coordinates of Controls:

https://forums.fivetechsupport.com/viewtopic.php?t=44532

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 555
Joined: Wed Jul 31, 2013 01:14 PM
Re: dialogo resizable desde recursos?
Posted: Tue Jan 28, 2025 07:19 PM

Siiiiii Joao,

sabes si está funcionando 100 %.?

No logro hacerlo funcionar desde recursos.

Un grande Joao. Gracias.

Saludos

Ruben Dario Fernandez

Dario Fernandez

FWH 2501, Harbour, MVS2022 Community, MySql & MariaDB, Dbf/Cdx VSCode.

Maldonado - Uruguay
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: dialogo resizable desde recursos?
Posted: Wed Jan 29, 2025 08:22 AM
Please try this sample as it is.
If this works as expected, you may use this for your other dialogs.
#include "fivewin.ch"

function Main()

   local oDlg, oFont
   local aVar  := { PadR( "get1", 10 ), PadR( "edit", 10 ), Space( 10 ), PadR( "pwd", 10 ) }
   local aGet[ 4 ]

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
   DEFINE DIALOG oDlg RESOURCE "TESTGETS" FONT oFont

   REDEFINE GET  aGet[ 1 ] VAR aVar[ 1 ] ID 101
   REDEFINE EDIT aGet[ 2 ] VAR aVar[ 2 ] ID 102
   REDEFINE EDIT aGet[ 3 ] VAR aVar[ 3 ] ID 103
   REDEFINE GET  aGet[ 4 ] VAR aVar[ 4 ] ID 104

   REDEFINE BUTTON ID 1 ACTION oDlg:End()
   REDEFINE BUTTON ID 2 ACTION oDlg:End()

   oDlg:bInit     := { || SetResize( oDlg ) }
   oDlg:bResized  := { || ResizeCtrls( oDlg ) }

   ACTIVATE DIALOG oDlg CENTERED
   RELEASE FONT oFont

return nil

function SetResize( oDlg )

   local oCtrl

   oDlg:Cargo  := { oDlg:nWidth, oDlg:nHeight, oDlg:oFont:nHeight }
   for each oCtrl in oDlg:aControls
      WITH OBJECT oCtrl
         :Cargo := { :nTop, :nLeft, :nWidth, :nHeight, :oFont:nHeight }
      END
   next

return nil

function ResizeCtrls( oDlg )

   local xRatio, yRatio
   local oCtrl, h, f

   xRatio   := oDlg:nWidth  / oDlg:Cargo[ 1 ]
   yRatio   := oDlg:nHeight / oDlg:Cargo[ 2 ]

   for each oCtrl in oDlg:aControls
      WITH OBJECT oCtrl
         :nTop    := Int( yRatio * :Cargo[ 1 ] )
         :nHeight := Int( yRatio * :Cargo[ 4 ] )
         :nLeft   := Int( xRatio * :Cargo[ 2 ] )
         :nWidth  := Int( xRatio * :Cargo[ 3 ] )
         h  := Int( :Cargo[ 5 ] * yRatio )
         if h != :oFont:nInpHeight
            :SetFont( f := :oFont:Modify( h ) )
            f:End()
         endif
      END
   next

return nil
.RC file
TESTGETS DIALOG 99, 89, 194, 200
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MAXIMIZEBOX | WS_MINIMIZEBOX
CAPTION "TESTGETS"
FONT 8, "MS Sans Serif"
{
 EDITTEXT 101, 33, 51, 131, 12, WS_BORDER | WS_TABSTOP
 EDITTEXT 102, 33, 71, 131, 12, WS_BORDER | WS_TABSTOP
 EDITTEXT 103, 33, 91, 131, 12, WS_BORDER | WS_TABSTOP
 EDITTEXT 104, 33,111, 131, 12, ES_PASSWORD | WS_BORDER | WS_TABSTOP
 DEFPUSHBUTTON "OK", 1, 42, 150, 50, 14
 PUSHBUTTON "Cancel", 2, 102, 150, 50, 14
}
Notes:
Please add " WS_THICKFRAME | WS_MAXIMIZEBOX | WS_MINIMIZEBOX" to the dialog styles in the RC file.

Please let us know if you face any issues
Regards



G. N. Rao.

Hyderabad, India
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: dialogo resizable desde recursos?
Posted: Wed Jan 29, 2025 08:34 AM
Regards



G. N. Rao.

Hyderabad, India
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: dialogo resizable desde recursos?
Posted: Wed Jan 29, 2025 01:58 PM

Master Nages, does it work with more complex dialogs with folders, xbrowse, etc?

Master Nages, ¿funciona con cuadros de diálogo más complejos con carpetas, xbrowse, etc?

Gracias, tks.

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 555
Joined: Wed Jul 31, 2013 01:14 PM
Re: dialogo resizable desde recursos? SOLUCIONADO?
Posted: Wed Jan 29, 2025 06:52 PM
Hola Mr. Rao.
Excelente, funciona casi de 100%.
Lo probé con un campo MEMO, varios GETs y BTNBMP.
Al restablecer a la forma original el tamaño de las fuentes no lo respeta, quedan mas chicos.

Es un excelente comienzo.

Gracias
Saludos
Ruben Dario Fernandez

Imágen original
https://ibb.co/cSZc87rM

Imágen luego de jugar un poco
https://ibb.co/mCCpz09W
Dario Fernandez

FWH 2501, Harbour, MVS2022 Community, MySql & MariaDB, Dbf/Cdx VSCode.

Maldonado - Uruguay
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: dialogo resizable desde recursos?
Posted: Wed Jan 29, 2025 07:15 PM

Mr. Ruben

So, we need to review font resizing and we will look into that aspect.

Please keep using and help us by reporting any issues you notice.

Regards



G. N. Rao.

Hyderabad, India
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: dialogo resizable desde recursos?
Posted: Wed Jan 29, 2025 07:18 PM
karinha wrote: Master Nages, does it work with more complex dialogs with folders, xbrowse, etc?

Master Nages, ¿funciona con cuadros de diálogo más complejos con carpetas, xbrowse, etc?

Gracias, tks.

Regards, saludos.
xbrowse - yes
folders? No. We need to still improve the logic, to handle folders.

I think you have other alternatives in mind.
Please post one working sample like the one above and we will be glad to learn from that.
Regards



G. N. Rao.

Hyderabad, India
Posts: 555
Joined: Wed Jul 31, 2013 01:14 PM
Re: dialogo resizable desde recursos?
Posted: Wed Jan 29, 2025 08:09 PM

Si con gusto Mr. Rao.

Gracias

Saludos

Ruben Dario Fernandez

Dario Fernandez

FWH 2501, Harbour, MVS2022 Community, MySql & MariaDB, Dbf/Cdx VSCode.

Maldonado - Uruguay
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: dialogo resizable desde recursos?
Posted: Wed Jan 29, 2025 11:39 PM
I gave this function in my original sample
function SetResize( oDlg )

   local oCtrl

   oDlg:Cargo  := { oDlg:nWidth, oDlg:nHeight, oDlg:oFont:nHeight }
   for each oCtrl in oDlg:aControls
      WITH OBJECT oCtrl
         :Cargo := { :nTop, :nLeft, :nWidth, :nHeight, :oFont:nHeight }
      END
   next

return nil
Please change :oFont:nHeight as :oFont:nInpHeight in both the lines and test again please.
Regards



G. N. Rao.

Hyderabad, India
Posts: 555
Joined: Wed Jul 31, 2013 01:14 PM
Re: dialogo resizable desde recursos?
Posted: Thu Jan 30, 2025 05:39 AM

Mr. Rao...

EXTRAORDINARIO.

Excelente, ya va tomando forma. se ve muy bien.

Saludos

Ruben Dario Fernandez

Dario Fernandez

FWH 2501, Harbour, MVS2022 Community, MySql & MariaDB, Dbf/Cdx VSCode.

Maldonado - Uruguay
Posts: 555
Joined: Wed Jul 31, 2013 01:14 PM
Re: dialogo resizable desde recursos?
Posted: Thu Jan 30, 2025 02:55 PM

Hola Mr. Rao

Funciona bien con xBrowse

No Funciona el menu del dialogo

Error linea -> xRatio := oDlg:nWidth / oDlg:Cargo[ 1 ] de ResizeCtrls( oDlg )

No funciona la buttonbar

Error linea -> xRatio := oDlg:nWidth / oDlg:Cargo[ 1 ] de ResizeCtrls( oDlg )

Gracias, Saludos

Ruben Dario Fernandez

Dario Fernandez

FWH 2501, Harbour, MVS2022 Community, MySql & MariaDB, Dbf/Cdx VSCode.

Maldonado - Uruguay

Continue the discussion