Cliccare in un oggetto qualsiasi o in una immagine suddivisi in rettangoli
Da Gambas-it.org - Wikipedia.
Versione del 1 dic 2021 alle 20:25 di Vuott (Discussione | contributi)
Poniamo il caso di avere un Controllo qualsiasi, oppure un'immagine (caricata ovviamente in apposito Oggetto capace di contenerla) suddivisi in vari rettangoli e/o quadrati. Vogliamo sapere, quando si clicca su detto oggetto o immagine, in quale rettangolo/quadrato si è cliccato.
Per delimitare le aree quadrilatere ad angoli retti sull'Oggetto, o sull'immagine, faremo uso della Classe "Rect ", che rappresenta un rettangolo avente coordinate di valore intero.
Facciamo l'esempio di avere su un Form tre rettangoli:
' Creiamo una variabile array di tipo "Rect", nella quale inseriremo le coordinate e le dimensioni afferenti ai tre rettagoli: Private r As Rect[] Public Sub Form_Open() With r = New Rect[] .Add(Rect(0, 0, 150, 100)) .Add(Rect(0, 150, 150, 100)) .Add(Rect(200, 0, 150, 100)) End With End Public Sub Form_MouseUp() Dim b As Byte ' Se si è cliccato su un punto incluso all'interno di uno dei tre rettangoli definiti, allora si mostra in quale area/rettangolo si è cliccato: For b = 0 To r.Max If r[b].Contains(Mouse.X, Mouse.Y) Then Print "Rettangolo n. "; b Next End