Differenze tra le versioni di "Istruzioni essenziali per disegnare su una DrawingArea"

Da Gambas-it.org - Wikipedia.
 
(8 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
La [https://gambaswiki.org/wiki/comp/gb.qt4/drawingarea DrawingArea] esercita il suo precipuo compito di area di disegno mediante e all'interno del suo Evento "_Draw()".
+
La [https://gambaswiki.org/wiki/comp/gb.qt4/drawingarea DrawingArea] esercita il suo precipuo compito di area di disegno mediante e all'interno del suo Evento "'''_Draw()'''".
<BR>E' nella routine dell'Evento "_Draw()", dunque, che si devono porre le istruzione necessarie per disegnare sulla superficie della ''DrawingArea''.
+
<BR><U>E' nella routine dell'Evento "_Draw()", dunque, che si devono porre le istruzione necessarie per disegnare sulla superficie della ''DrawingArea''</u>.
 
<BR>La funzione utilizzata per disegnare sulla ''DrawingArea'' è [https://gambaswiki.org/wiki/comp/gb.qt4/paint PAINT].
 
<BR>La funzione utilizzata per disegnare sulla ''DrawingArea'' è [https://gambaswiki.org/wiki/comp/gb.qt4/paint PAINT].
  
 
In via generale all'attivarsi del Contenitore (ad esempio un ''Form'' ) che ospita la ''DrawingArea'', si solleva automaticamente l'Evento "_Draw()" della ''DrawingArea''.
 
In via generale all'attivarsi del Contenitore (ad esempio un ''Form'' ) che ospita la ''DrawingArea'', si solleva automaticamente l'Evento "_Draw()" della ''DrawingArea''.
  
Mostriamo un semplice esempio pratico, nel quale si disegnerà un cerchio al centro della ''DrawingArea'' (si dovrà avere cura di porre sul ''Form'' principale la ''DrawingArea''):
+
Mostriamo un semplice esempio pratico, nel quale si disegnerà un cerchio al centro della ''DrawingArea'':
 
  Public Sub DrawingArea1<FONT Color=red><B>_Draw()</b></font>
 
  Public Sub DrawingArea1<FONT Color=red><B>_Draw()</b></font>
 
   
 
   
 
  <FONT Color=gray>' ''Si disegna con le risorse della Classe "Paint":''</font>
 
  <FONT Color=gray>' ''Si disegna con le risorse della Classe "Paint":''</font>
 
   With <FONT Color=green>Paint</font>
 
   With <FONT Color=green>Paint</font>
     .Arc(DrawingArea1.W / 2, DrawingArea1.H / 2, 100, Rad(0), Rad(360), False)
+
     .Arc(DrawingArea1.W / 2, DrawingArea1.H / 2, DrawingArea1.W * 0.2, Rad(0), Rad(360), False)
 
     .Stroke
 
     .Stroke
 
  <FONT Color=gray>' ''Alla fine si chiude l'attività del disegno:''</font>
 
  <FONT Color=gray>' ''Alla fine si chiude l'attività del disegno:''</font>
Riga 18: Riga 18:
 
  End
 
  End
 
Può accadere che si intenda richiamare arbitrariamente, secondo le necessità del codice o dell'utente, la funzione del disegno, che - come sappiamo - avviene con la sollevazione dell'Evento "_Draw()" della Classe ''DrawingArea''.
 
Può accadere che si intenda richiamare arbitrariamente, secondo le necessità del codice o dell'utente, la funzione del disegno, che - come sappiamo - avviene con la sollevazione dell'Evento "_Draw()" della Classe ''DrawingArea''.
<BR>Per far sollevare l'Evento "_Draw()" della ''DrawingArea'' si utilizza il Metodo ".Refresh()" della ''DrawingArea''.
+
<BR>Per far sollevare arbitrariamente (su richiesta) l'Evento "_Draw()" della ''DrawingArea'' si utilizza il Metodo ".Refresh()" della ''DrawingArea''.
  
 
Mostriamo un esempio, nel quale all'apertura del ''Form'' principale si disegnerà sulla superficie della ''DrawingArea'' un cerchio rosso; cliccando poi su un ''Button'', anch'esso posto sul ''Form'', si ridisegnerà il cerchio, ma con circonferenza di colore blu.
 
Mostriamo un esempio, nel quale all'apertura del ''Form'' principale si disegnerà sulla superficie della ''DrawingArea'' un cerchio rosso; cliccando poi su un ''Button'', anch'esso posto sul ''Form'', si ridisegnerà il cerchio, ma con circonferenza di colore blu.
Riga 29: Riga 29:
 
     .Brush = .Color(clr)
 
     .Brush = .Color(clr)
 
     .LineWidth = 2.0
 
     .LineWidth = 2.0
     .Arc(DrawingArea1.W / 2, DrawingArea1.H / 2, 100, Rad(0), Rad(360), False)
+
     .Arc(DrawingArea1.W / 2, DrawingArea1.H / 2, DrawingArea1.W * 0.2, Rad(0), Rad(360), False)
 
     .Stroke
 
     .Stroke
 
     .End
 
     .End
Riga 41: Riga 41:
 
   clr = Color.Blue
 
   clr = Color.Blue
 
   
 
   
  <FONT Color=gray>' ''Il Metodo ".Refresh()" della "DrawingArea" invoca l'Evento "_Draw()" determinando così un nuovo disegno:''</font>
+
  <FONT Color=gray>' ''Il Metodo ".Refresh()" della "DrawingArea" invoca l'Evento "_Draw()" <U>determinando così la ripetizione del disegno</u>:''</font>
   DrawingArea1<FONT Color=blue>.Refresh</font>
+
   DrawingArea1<FONT Color=blue><B>.Refresh</b></font>
 
   
 
   
 
  End
 
  End

Versione attuale delle 16:27, 21 ott 2024

La DrawingArea esercita il suo precipuo compito di area di disegno mediante e all'interno del suo Evento "_Draw()".
E' nella routine dell'Evento "_Draw()", dunque, che si devono porre le istruzione necessarie per disegnare sulla superficie della DrawingArea.
La funzione utilizzata per disegnare sulla DrawingArea è PAINT.

In via generale all'attivarsi del Contenitore (ad esempio un Form ) che ospita la DrawingArea, si solleva automaticamente l'Evento "_Draw()" della DrawingArea.

Mostriamo un semplice esempio pratico, nel quale si disegnerà un cerchio al centro della DrawingArea:

Public Sub DrawingArea1_Draw()

' Si disegna con le risorse della Classe "Paint":
 With Paint
   .Arc(DrawingArea1.W / 2, DrawingArea1.H / 2,  DrawingArea1.W * 0.2, Rad(0), Rad(360), False)
   .Stroke
' Alla fine si chiude l'attività del disegno:
   .End
 End With

End

Può accadere che si intenda richiamare arbitrariamente, secondo le necessità del codice o dell'utente, la funzione del disegno, che - come sappiamo - avviene con la sollevazione dell'Evento "_Draw()" della Classe DrawingArea.
Per far sollevare arbitrariamente (su richiesta) l'Evento "_Draw()" della DrawingArea si utilizza il Metodo ".Refresh()" della DrawingArea.

Mostriamo un esempio, nel quale all'apertura del Form principale si disegnerà sulla superficie della DrawingArea un cerchio rosso; cliccando poi su un Button, anch'esso posto sul Form, si ridisegnerà il cerchio, ma con circonferenza di colore blu.

Private clr As Integer = Color.Red


Public Sub DrawingArea1_Draw()

 With Paint
   .Brush = .Color(clr)
   .LineWidth = 2.0
   .Arc(DrawingArea1.W / 2, DrawingArea1.H / 2,  DrawingArea1.W * 0.2, Rad(0), Rad(360), False)
   .Stroke
   .End
 End With

End


Public Sub Button1_Click()
 
 clr = Color.Blue

' Il Metodo ".Refresh()" della "DrawingArea" invoca l'Evento "_Draw()" determinando così la ripetizione del disegno:
 DrawingArea1.Refresh

End