Spostare la finestra di un Message

Da Gambas-it.org - Wikipedia.
Versione del 28 lug 2023 alle 09:19 di Vuott (Discussione | contributi) (Creata pagina con "Solitamente la finestra del ''Message'' si mostra centrata rispetto alla scrivania. <BR>E' possibile decidere in quale punto della Scrivania far apparire la finestra del ''Mes...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Solitamente la finestra del Message si mostra centrata rispetto alla scrivania.
E' possibile decidere in quale punto della Scrivania far apparire la finestra del Message, impostando le sue coordinate.
Per fare ciò, bisognerà individuare il numero identificativo della sua finestra attraverso la Proprietà ".ActiveWindow" della Classe statica Desktop, e successivamente utilizzare il Metodo ".Move()" della Classe "DesktopWindow".
A tal fine è necessario che il Message abbia un titolo della propria finestra (e ciò si imposterà con la Proprietà ".Title"), e che siano attivati anche i Componenti "gb.desktop" e "gb.desktop.x11".

Mostriamo un esempio pratico:

Private Timer1 As Timer


Public Sub Button1_Click()

 With Timer1 = New Timer As "Timer1"
   .Delay = 100
   .Start
 End With

 With Message
   .Title = "Titolo del Message"
   .Info("Testo qualsiasi")
 End With

End


Public Sub Timer1_Timer()

' Il "Timer" consente di verificare l'attuale finestra "attiva" e posta al di sopra delle altre.
' Quando sarà stato aperto il "Message", il Metodo "Desktop.ActiveWindow" ne individuerà la finestra e quindi il suo ID:
 Dim dw As DesktopWindow

 With dw = New DesktopWindow(Desktop.ActiveWindow)
' Evita che il successivo Metodo ".Move()" venga applicato anche alle altre finestre: 
   If .VisibleName <> "Titolo del Message" Then Return
' Applica dunque il Metodo ".Move()" alla sola finestra del "Message": 
   .Move(Screen.AvailableWidth * 0.8, Screen.AvailableHeight * 0.2)
   Timer1.Stop
 End With

End