Ridimensionare la finestra del Dialog da codice
Da Gambas-it.org - Wikipedia.
Per ridimensionare la finestra del "Dialog" da codice al momento della sua apertura, utilizzeremo le risorse delle Classi "DesktopWatcher" e "DesktopWindows". A tal fine dovranno essere attivati i Componenti gb.desktop e gb.desktop.x11.
Vediamo di seguito un codice commentato, nel quale la finestra del "Dialog" sarà massimizzata a pieno schermo:
Private wa As DesktopWatcher Private dw As DesktopWindow Public Sub Form_Open() ' Osserva tutte le finestre, presenti e future, sulla Scrivania: wa = New DesktopWatcher As "DWatch" End Public Sub Button1_Click() With Dialog ' Il "Titolo" della finestra del "Dialog" deve essere certo e univoco. ' In questo esempio daremo alla finestra di Dialogo il titolo: "Titolo_della_finestra_del_Dialog".; e sarà quello che apparirà sul bordo superiore della finestra del "Dialog" alla sua apertura. .Title = "Titolo_della_finestra_del_Dialog" If .OpenFile() Then Return End With End Public Sub DWatch_Windows() ' Se la lista delle finestre sulla Scrivania è cambiata... ' ...allora controlla se la finestra, avente Titolo "Titolo_della_finestra_del_Dialog", si è aperta: If Desktop.FindWindow("Titolo_della_finestra_del_Dialog", Null, Null).Count > 0 Then ' In caso affermativo, la finestra del "Dialog" viene ridimensionata (in questo caso a schermo pieno): With dw = New DesktopWindow(Desktop.FindWindow("Titolo_della_finestra_del_Dialog", Null, Null)[0]) .Resize(Screen.AvailableWidth, Screen.AvailableHeight) End With Endif End
Oppure usando un Timer per individuare con la Proprietà ".ActiveWindow" della Classe Desktop il numero identificatore della finestra Dialog, da passare successivamente a un Oggetto di tipo DesktopWindow, per ridimensionare mediante il Metodo ".Resize()" la predetta finestra Dialog.
Private Timer1 As Timer Public Sub Button1_Click() ' Crea e avvia il "Timer": With Timer1 = New Timer As "Timer1" .Delay = 300 .Start End With With Dialog If .OpenFile() Then Return End With End Public Sub Timer1_Timer() Timer1.Stop Dim dw As DesktopWindow ' Quando sarà stata aperta la finestra del "Dialog", il Metodo "Desktop.ActiveWindow" ne individuerà la finestra e quindi il suo ID: With dw = New DesktopWindow(Desktop.ActiveWindow) ' Procede al ridimensionamento della finestra del "Dialog": .Resize(Screen.AvailableWidth, Screen.AvailableHeight) End With End