Proxy: la Proprietà per sollevare Eventi del mouse e della tastiera contemporaneamente in due Controlli: differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
Nessun oggetto della modifica
 
(4 versioni intermedie di uno stesso utente non sono mostrate)
Riga 2: Riga 2:


In Gambas un Controllo grafico può avere il suo "[https://gambaswiki.org/wiki/comp/gb.qt4/control/proxy?l=it Proxy]", assegnando alla sua omonima Proprietà ".Proxy" un Oggetto.
In Gambas un Controllo grafico può avere il suo "[https://gambaswiki.org/wiki/comp/gb.qt4/control/proxy?l=it Proxy]", assegnando alla sua omonima Proprietà ".Proxy" un Oggetto.
<BR>Tale Oggetto diventerà dunque ''Proxy'' del Controllo grafico principale.
<BR>Tale Oggetto diventerà dunque ''Proxy'' del Controllo grafico principale, al quale è stato appunto assegnato.
<BR>Più in particolare , inserendo nel codice del programma taluni Eventi del mouse e della tastiera appartenenti al Controllo principale (ossia quello <U>al quale</u> è stato assegnato il suo ''Proxy''), quando si solleva l'analogo Evento (del mouse o della tastiera) dell'Oggetto ''Proxy'', viene sollevato contestualmente anche l'Evento, se previsto nel codice, del Controllo principale.
<BR>Più in particolare , inserendo nel codice del programma taluni Eventi del mouse e della tastiera appartenenti al Controllo principale (ossia quello <U>al quale</u> è stato assegnato il suo ''Proxy''), quando si solleva l'analogo Evento (del mouse o della tastiera) dell'Oggetto ''Proxy'' - <U>ancorché detto Evento non sia eventualmente esplicitato nel codice</u> - viene sollevato contestualmente anche l'Evento, se previsto nel codice, del Controllo principale.
<BR>In tal caso all'interno della subroutine del Controllo principale Gambas avrà come punto di riferimento il Controllo principale.  
<BR>In tal caso all'interno della subroutine del Controllo principale Gambas avrà come <U>punto di riferimento</u> il Controllo principale medesimo.  


Mostriamo un esempio esplicativo, nel quale un ''Button'' diventa ''Proxy'' del ''Form'' principale:
Mostriamo un esempio esplicativo, nel quale un ''Button'' diventa ''Proxy'' del ''Form'' principale:
  Public Sub Form_Open()
  Public Sub Form_Open()
   
   
  <FONT Color=gray>' ''Il "Button" diventa "Proxy" del "Form": ogni Evento del mouse o della tastiera, appartenente al "Button", che si solleverà, farà sollevare automaticamente l'analogo Evento del Form".''</font>
  <FONT Color=gray>' ''Il "Button" diventa "Proxy" del "Form": ogni Evento del mouse o della tastiera, appartenente al "Button", che si solleverà, farà sollevare automaticamente l'<U>analogo Evento</u> del Form".''</font>
   Me<FONT Color=red><B>.Proxy</b></font> = Button1
   Me<FONT Color=red><B>.Proxy</b></font> = Button1
   
   
Riga 15: Riga 15:
   
   
   
   
  Public Sub Button1<FONT Color=blue>_MouseDown()</font>
  Public Sub Button1<FONT Color=blue>_MouseDown()</font>  <FONT Color=gray>' ''Questo Evento e la sua subroutine possono anche eventualmente non essere qui esplicitati''</font>
   
   
  <FONT Color=gray>' ''Restituisce la distanza del puntatore del mouse dal margine sinistro del "Button":''</font>
  <FONT Color=gray>' ''Restituisce la distanza del puntatore del mouse dal margine sinistro del "Button":''</font>
   Print Mouse.X
   Print "Sollevato Evento \"Button1_MouseDown()\" | Mouse.X = "; Mouse.X
   
   
  End
  End
Riga 26: Riga 26:
   
   
  <FONT Color=gray>' ''Restituisce la distanza del puntatore del mouse dal margine sinistro del "'''Form'''"... <U><B>anche se si clicca sul "Button"</b></u>:''</font>
  <FONT Color=gray>' ''Restituisce la distanza del puntatore del mouse dal margine sinistro del "'''Form'''"... <U><B>anche se si clicca sul "Button"</b></u>:''</font>
   Print Mouse.X
   Print "Sollevato Evento \"Form_MouseDown()\" | Mouse.X = "; Mouse.X
   
   
  End
  End

Versione attuale delle 05:59, 28 ago 2025

In generale il Proxy è un elemento che fa da intermediario fra altri elementi, facendo da ponte, e si sostituisce a uno o a più elementi.

In Gambas un Controllo grafico può avere il suo "Proxy", assegnando alla sua omonima Proprietà ".Proxy" un Oggetto.
Tale Oggetto diventerà dunque Proxy del Controllo grafico principale, al quale è stato appunto assegnato.
Più in particolare , inserendo nel codice del programma taluni Eventi del mouse e della tastiera appartenenti al Controllo principale (ossia quello al quale è stato assegnato il suo Proxy), quando si solleva l'analogo Evento (del mouse o della tastiera) dell'Oggetto Proxy - ancorché detto Evento non sia eventualmente esplicitato nel codice - viene sollevato contestualmente anche l'Evento, se previsto nel codice, del Controllo principale.
In tal caso all'interno della subroutine del Controllo principale Gambas avrà come punto di riferimento il Controllo principale medesimo.

Mostriamo un esempio esplicativo, nel quale un Button diventa Proxy del Form principale:

Public Sub Form_Open()

' Il "Button" diventa "Proxy" del "Form": ogni Evento del mouse o della tastiera, appartenente al "Button", che si solleverà, farà sollevare automaticamente l'analogo Evento del Form".
 Me.Proxy = Button1

End


Public Sub Button1_MouseDown()  ' Questo Evento e la sua subroutine possono anche eventualmente non essere qui esplicitati

' Restituisce la distanza del puntatore del mouse dal margine sinistro del "Button":
 Print "Sollevato Evento \"Button1_MouseDown()\" | Mouse.X = "; Mouse.X

End


Public Sub Form_MouseDown()

' Restituisce la distanza del puntatore del mouse dal margine sinistro del "Form"... anche se si clicca sul "Button":
 Print "Sollevato Evento \"Form_MouseDown()\" | Mouse.X = "; Mouse.X

End