|
|
(3 versioni intermedie di uno stesso utente non sono mostrate) |
Riga 1: |
Riga 1: |
− | Prenderemo in considerazione sia il caso di un ''MessageBox'' generato dal codice di un programma Gambas (come ad esempio un ''Message.Info()'' ), sia il caso di quello generato da un programma esterno.
| + | #REDIRECT [[Spostare_la_finestra_di_un_MessageBox]] |
− | | |
− | Bisogna premettere che anche le finestrine di un qualunque ''MessageBox'' sono normali finestre, e che, pertanto, anch'esse posseggono un proprio ID.
| |
− | | |
− | Dagli esperimenti attualmente compiuti, è risultato che un ''MessageBox'' <SPAN style="text-decoration:underline">in talune circostanze</span> - probabilmente legate al tipo di ambiente desktop grafico e/o al tema - non può essere spostato né ridimensionato. In altri casi, quando il ''MessageBox'' viene generato dal codice Gambas, esso può essere spostato solo insieme con la finestra del programma ''padre''.
| |
− | | |
− | E', invece, risultato possibile ''chiudere'' con il codice Gambas una finestra di un ''MessageBox'' comunque generato.
| |
− | | |
− | Prenderemo in considerazione, dunque, solo il caso di ''MessageBox'' che possono essere spostati e/o ridimensionati. Essi solitamente sono ''MessageBox'' generati da programmi esterni. Per ridimensionare e spostare le finestre di tali ''MessageBox'', si potranno adoperare sia funzioni di Gambas che comandi ''bash''.
| |
− | | |
− | ==Uso delle sole funzioni di Gambas==
| |
− | Faremo uso della Classe ''DesktopWindow'' e dei suoi metodi: potremo in modo particolare spostare e/o ridimensionare oppure chiudere la finestra del ''MessageBox'', appartenente ad un altro programma:
| |
− | '''Public''' Sub Button1_Click()
| |
− |
| |
− | Dim dw As DesktopWindow
| |
− | Dim i As Integer
| |
− |
| |
− | With Desktop
| |
− | <FONT color=gray>' ''Per individuare l'ID della finestra del "MessageBox", si farà riferimento al fatto che essa è stata l'ultima finestra apparsa sul desktop:''</font>
| |
− | i = .Windows[Desktop.Windows.Count - 1].Id
| |
− | End With
| |
− |
| |
− | dw = New DesktopWindow(i)
| |
− |
| |
− | With dw
| |
− | .Move(''x'', ''y'', ''w'', ''h'')
| |
− | <FONT color=gray>' ''...ma si potranno anche usare:''
| |
− | ' .Resize(''w'', ''h'')
| |
− | ' .Close</font>
| |
− | End With
| |
− |
| |
− | '''End'''
| |
− | | |
− | | |
− | ==Uso del comando ''xprop''==
| |
− | Si potrà anche usare il comando bash "''xprop''" per individuare, in particolare, l'ID della finestra del "MessageBox":
| |
− | Private i As Integer
| |
− |
| |
− |
| |
− | '''Public''' Sub Form_Open()
| |
− |
| |
− | Dim pr As Process
| |
− | Dim s As String
| |
− |
| |
− | pr = Shell "xprop | grep XKLAVIER_STATE" For Read
| |
− |
| |
− | While Not Eof(pr)
| |
− | Input #pr, s
| |
− | <FONT color=gray>' ''Individua il valore decimale della finestra del "MessageBox":''</font>
| |
− | If Eof(pr) Then i = CInt(s)
| |
− | Wend
| |
− |
| |
− | '''End'''
| |
− |
| |
− | '''Public''' Sub Button1_Click()
| |
− |
| |
− | Dim dw As DesktopWindow
| |
− |
| |
− | dw = New DesktopWindow(i)
| |
− |
| |
− | With dw
| |
− | .Move(''x'', ''y'', ''w'', ''h'')
| |
− | <FONT color=gray>' ''...ma si potranno anche usare:''
| |
− | ' .Resize(''w'', ''h'')
| |
− | ' .Close</font>
| |
− | End With
| |
− |
| |
− | '''End'''
| |