Impedire in una DrawingArea che si esegua il codice presente nell'Evento " Draw()" , qualora sia sollevato arbitrariamente più di una volta: differenze tra le versioni
Vai alla navigazione
Vai alla ricerca
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| Riga 19: | Riga 19: | ||
End | End | ||
Public Sub Form_Open() | Public Sub Form_Open() | ||
| Riga 27: | Riga 28: | ||
Inc c | Inc c | ||
Wait 0.3 | Wait 0.3 | ||
If Object.IsValid(DrawingArea1) Then | If Object.IsValid(DrawingArea1) Then | ||
<FONT Color=gray>' ''Solleva l'Evento "DrawingArea1_Draw()":''</font> | |||
DrawingArea1.Refresh | DrawingArea1.Refresh | ||
Else | Else | ||
| Riga 35: | Riga 37: | ||
End | End | ||
Public Sub DrawingArea1_Draw() | Public Sub DrawingArea1_Draw() | ||
Versione delle 14:41, 2 ago 2025
Come è noto, l'Evento "_Draw()" del Controllo DrawingArea viene sollevato all'inizio per tre volte. Può essere sollevato arbitrariamente anche più di una volta, anche qualora venga sollecitato legittimamente dal previsto codice nel prosieguo del programma.
Per impedire che una volta sollecitato, l'Evento "_Draw()" della DrawingArea sia sollevato arbitrariamente per più della volta richiesta, possiamo adottare lo stratagemma, qui riportato all'interno dell'Evento "_Draw()":
Private DrawingArea1 As DrawingArea
Private c As Integer
Private i As Integer
Public Sub _new()
With Me
.Move(0, 0, Screen.AvailableWidth, Screen.AvailableHeight)
.Arrangement = Arrange.Fill
End With
With DrawingArea1 = New DrawingArea(Me) As "DrawingArea1"
.Background = Color.White
End With
End
Public Sub Form_Open()
Me.Show
Do
Inc c
Wait 0.3
If Object.IsValid(DrawingArea1) Then
' Solleva l'Evento "DrawingArea1_Draw()":
DrawingArea1.Refresh
Else
Break
Endif
Loop
End
Public Sub DrawingArea1_Draw()
If c == i Then
Inc c
Return
Endif
i = c
Print i
End