Newsgroup: it.comp.lang.visual-basic
Titolo: [?][variabili Oggetto] Domanda su Set =....

Salve,
non ho un form, ma un modulo, quindi non posso mettere controlli nel
form e gestirli, ma devo instanziarli quando mi servono, farli restare
in vita per quanto mi servono, e ucciderli quando non servono piů.
Precisamente, ho scritto:
    Dim mioTimer as Timer (nessun problema)
Quando vado a scivere:
    Set mioTimer = New (timer)
non vedo timer, o altri controlli, ma vedo:
    Collection
    ErrObject
    Global
    ...
    .....
Perchč? Se poi provo a fare il furbo e metto io Timer, mi dice:
Utilizzo non valido della parola chiave New
Ossia? Perchč non posso farlo??
Saluti...

 wrote in message
news:3a7817fb...@news.enter.it...


Io ho provato a fare anche un form e....ho lo stesso problema, ma
neanche un form posso creare in fase di run-time?!?!
Saluti...

 neanche un form posso creare in fase di run-time?!?!
No, il Form in particolare non si puo' (oddio, potresti forse con CreateWindow
ma dovresti farti anche tutta la gestione degli eventi ecc.. tanto vale farlo in
C)
I controlli invece puoi crearli, anche se non con la sintassi "Set = New...", ma
devi avere almeno un oggetto form definito in design, per cui potresti usare un
form completamente vuoto e aggiungere controlli con:
Form1.Controls.Add "VB.Timer", "Timer1"
nel tuo caso particolare comunque mi sembra tu abbia solo bisogno di un timer
via codice; puoi farlo in maniera piu' semplice con le API SetTimer/KillTimer e
relativa funzione di callback:
Public Declare Function SetTimer Lib "user32" Alias "SetTimer" (ByVal hWnd As
Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
As Long
Public Declare Function KillTimer Lib "user32" Alias "KillTimer" (ByVal hwnd As
Long, ByVal nIDEvent As Long) As Long
definisci una routine, nome a piacere ma parametri come la seguente:
Sub TimerProc (ByVal hwnd as Long, ByVal uMsg As Long, ByVal idEvent As Long _
 , ByVal dwTime As Long)
    'codice da eseguire ogni tot millisecondi
End Sub
Quando vuoi attivare il timer via codice ( es. 200 ms) e' sufficiente:
MyIdTimer = SetTimer(0&, 0&, 200, AddressOf TimerProc)
a questo punto il tuo programma eseguira' la sub "TimerProc" ogni 200 ms,
ricordati poi di distruggere il timer con KillTimer 0&, MyIdTimer
Ciao
--
Luca Dormio
luca....@tin.it

Alessandro - A cui si e' appena bruciato il mouse...
Non brucio un mouse da quando ho ribaltato una lattina di chinotto
sulla Trackball Marble della Logitech. Non ho mai piu' speso cosi'
tanto in un dispositivo di puntamento =)
A proposito: qualcuno in Italia vende il Magellan? Per quello
spenderei anche *MOLTO*
Saluti.
-- 
      Gianni "bugbarbeq" Rondinini, 25, RA, 242, 152
  VBR - Vero Birro Romagnolo®, diffidate dalle imitazioni!
 Opel/ECC Calibrezio EVO-IV --- Kawasaki "Gas Gas" ZZ-R 1100
 ICQ# 36893168 - IRCNet: bugbarbeq, @ on #linux-it & #NetBSD

neanche un form posso creare in fase di run-time?!?!
Puoi sempre creare dei form figli all'interno di un form MDI.
Naturalmente, a seconda di come gestisci la cosa puo' "sembrare" che
tu crei dei form runtime.



Magellan? Mai coperto...
Ciaotutti,
Alessandro

 relativa funzione di callback:
Esiste una chiamata ad un api per qualunque controllo? Se invece che
un timer volevo creare un bottone, esiste un API SetCommandButton?
Saluti...

Magellan? Mai coperto...
"Mouse" a 6 assi della Logitech. Una meraviglia...
Saluti.
-- 
      Gianni "bugbarbeq" Rondinini, 25, RA, 242, 152
  VBR - Vero Birro RomagnoloŽ, diffidate dalle imitazioni!
