Differenze tra le versioni di "Spostare o ridimensionare una finestra di un MessageBox"

Da Gambas-it.org - Wikipedia.
 
(30 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 PID.
 
 
 
Dagli esperimenti attualmente compiuti, un ''MessageBox'' può essere spostato individualmente solo se non è generato dal codice del nostro applicativo Gambas. Se per esempio creiamo un programmino che compie un errore - ad esempio una divisione per zero -, quando la procedura incontra tale richiesta di divisione, essa solleverà un errore facendo apparire un ''MessageBox''. In questo caso sarà possibile effettuare lo spostamento. Se, invece, il nostro programma prevede che venga mostrato ad esempio un ''Message.Info'', sarà impossibile spostarlo o modificarne le dimensioni.
 
 
 
Prenderemo in considerazione, dunque, solo il caso di ''MessageBox'' generati da programmi esterni. Per ridimensionare e spostare tali finestrine, si potranno adoperare sia funzioni di Gambas, sia 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''.
 
 
 
 
 
'''Public''' Sub Button1_Click() 
 
 
 
  Dim dw As DesktopWindow 
 
  Dim i As Integer 
 
 
 
  With Desktop
 
<FONT color=#006400>' ''Si porrà il numero di "indice" della finestra del "MessageBox":''</font>
 
    i = .Windows[n].Id 
 
  End With 
 
 
 
  dw = New DesktopWindow(i) 
 
 
 
  With dw 
 
    .Move(10, 500, 200, 150)
 
<FONT color=#006400>' ''...ma si potranno anche usare:''
 
  ' .Resize(100, 500) 
 
  ' .Close</font>
 
  End With 
 
 
 
'''End'''
 

Versione attuale delle 20:41, 29 dic 2021