Istruzioni essenziali per disegnare su una DrawingArea: differenze tra le versioni
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| (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> | <BR><U>Nella routine dell'Evento "_Draw()", dunque, devono essere poste le istruzioni 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'' | 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, | .Arc(DrawingArea1.W / 2, DrawingArea1.H / 2, DrawingArea1.W * 0.2, Rad(0), Rad(360), False) | ||
.Stroke | .Stroke | ||
End With | End With | ||
| Riga 29: | Riga 27: | ||
.Brush = .Color(clr) | .Brush = .Color(clr) | ||
.LineWidth = 2.0 | .LineWidth = 2.0 | ||
.Arc(DrawingArea1.W / 2, DrawingArea1.H / 2, | .Arc(DrawingArea1.W / 2, DrawingArea1.H / 2, DrawingArea1.W * 0.2, Rad(0), Rad(360), False) | ||
.Stroke | .Stroke | ||
End With | End With | ||
| Riga 41: | Riga 38: | ||
clr = Color.Blue | clr = Color.Blue | ||
<FONT Color=gray>' ''Il Metodo ".Refresh()" della "DrawingArea" invoca l'Evento "_Draw()" determinando così la ripetizione del 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><B>.Refresh</b></font> | DrawingArea1<FONT Color=blue><B>.Refresh</b></font> | ||
End | End | ||
Versione attuale delle 05:40, 16 set 2025
La DrawingArea esercita il suo precipuo compito di area di disegno mediante e all'interno del suo Evento "_Draw()".
Nella routine dell'Evento "_Draw()", dunque, devono essere poste le istruzioni 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 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 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