Autore Topic: Comandare una drawing area ed un toolbutton inseriti via codice  (Letto 911 volte)

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Ciao a tutti. Ho un problemino.
é difficile da spiegare, ci provo.
allora ho una FMain ed una Form1.
Ora nella Form1 ho un tasto che premuto inserisce una drawing area ed un toolbutton nella FMain.
Ora vorrei "individuare" i due oggetti ed associare a loro degli eventi tipo ad esempio al click sul toolbutton visualizzare un mesaggio,
Oppure disegnare un quadrato nella drawing area.
Ora il punto è che quando avvio il programma mi dice unknow identifier (cioè non conosce la mia drawingarea inserita)
Lo so mi sono spiegato male...
Ecco il mio codice:
questo è il codice del "button" della mia Form1
Codice: [Seleziona]
Public Sub Button2_Click()
  Dim hDraw As New DrawingArea(FMain.ScrollView1)
  Dim hButton As New ToolButton(FMain.ScrollView1)
  hDraw.Width = 80
  hDraw.Height = 80
  hDraw.Top = 5
  hDraw.Left = 5
  hDraw.Background = Color.Black
  hButton.Width = 20
  hButton.Height = 20
  hButton.Top = hDraw.Height + 5
  hButton.Left = hDraw.Left
  hButton.Text = "P"
  Me.Close
End
Ora hDraw non è identificato nella FMain....

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Comandare una drawing area ed un toolbutton inseriti via codice
« Risposta #1 il: 26 Aprile 2011, 06:13:20 »
Mi sembra logico... perche' l'oggetto non e' ancora stato creato :)

Tu nel codice fai già riferimento a questi due oggetti che saranno creati solo dopo aver premuto il tasto, quindi....

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Comandare una drawing area ed un toolbutton inseriti via codice
« Risposta #2 il: 26 Aprile 2011, 17:30:54 »
mmmm un esempio please :P :hatecomputer:

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Comandare una drawing area ed un toolbutton inseriti via codice
« Risposta #3 il: 26 Aprile 2011, 20:28:56 »

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Comandare una drawing area ed un toolbutton inseriti via codice
« Risposta #4 il: 27 Aprile 2011, 20:28:45 »
Grazie mille!
Mi spiegheresti questa parte di codice:
Codice: [Seleziona]
Btn[Btn.Max].Name = "Button" & Btn.Count
  Btn[Btn.Max].Move(5, 5 + (100 * Btn.Max), 28, 28)
  Btn[Btn.Max].Tag = Btn.Max
La parte in cui inserisci il "Count" ed il "Tag" non mi è chiara.
Il count dovrebbe rappresentare il numero di pulsanti che inserisco? anche perche ne verranno inseriti più di uno
ed il tag invece? rappresenta il nome del pulsante per identificarlo?

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Comandare una drawing area ed un toolbutton inseriti via codice
« Risposta #5 il: 27 Aprile 2011, 22:03:00 »
Btn è un array di oggetti Button per cui Btn.Count e' il numero totale di Button inseriti nell'array.
Quindi quando scrivo Btn[Btn.Max].Name = "Button" & Btn.Count non faccio altro che dare il nome al Button appena creato (mettiamo caso che sia il primo) con Button1

Il Tag mi serve solo per identificare il numero di Button che andrà a scatenare l'evento Click()
mi serve perche' devo andare ad richiamare in quale DrawingArea, ricercata all'interno dell'array Area, devo disegnare... In questo modo assegnando al Tag il numero corrispondente nell'array Btn non faccio altro che richiamare la DriwingArea in questo modo: Area[Last.Tag].Refresh()

Tutto chiaro? :violent: (quanto mi piace questa emotion  :rotfl:)