Newsgroup: it.comp.lang.delphi
Titolo: Problema con Sender

Come posso passare un form come parametro e utilizzarne poi i suoi
controlli?
Io sto facendo cosě ma va in errore....
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2 := TForm2.Create(Form1);
  Form2.ShowModal;
  Form2.Free;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
  Label1.Caption := (Sender as TForm1).Caption;
end;
So che potrei utilizzare la semplice sintassi 
Label1.caption := Form1.Caption;
ma non č quello che mi serve!!! 
Grazie, Gohan
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 controlli?
In TForm2 inserisci una property o un metodo per assegnare ad un
variabile un offetto di tipo TForm1 (o TForm se non hai bisogno di
accedere all'interfaccia specifica di TForm1).
Prima di visualizzare form2 ricordati impostare quella property (o
metodo).
All'interno di TForm2 utilizzi quella variabile per "accedere" a Form1.
-- 
I am what I am, I do what I can
Cerchi un programmatore PHP/MySQL? 
http://url.repository.biz/go/1Y
L'uomo, conscio di sbagliare, persevera.

 All'interno di TForm2 utilizzi quella variabile per "accedere" a Form1.
GULP! Cioč? Potresti postarmi due righe veloci perchč non 
riesco a seguirti!!! Scusami...


 end;
Il parametro che passi a TComponent.Create e' l'owner, non il Sender di
OnCreate (quest'ultimo e' in genere il componente stesso).
Saluti
Paolo Arosio
-- 
"La dimostrazione dell'esistenza di specie intelligenti nell'universo
 e' che non ci vengono a trovare" [Calvin & Hobbes]

 ma non è quello che mi serve!!!
Dall'help di Delphi 6 su TCustomForm.OnCreate
When a form is being created and its Visible property is true, the  
following events occur in the order listed:
1. OnCreate
2. OnShow
3. OnActivate
4. OnPaint
Non vorrei dire castronerie ma sei sicuro che TForm2.Label1 esiste quando  
esegui TForm2.FormCreate? Non ho mai capito se l'evento si verifica subito  
prima o subito dopo la creazione della Form e di tutti i componenti  
presenti su di essa (e sull'help non l'ho trovato). Prova a spostare il  
codice allinterno di Form2.OnShow. Fermo restando che la soluzione che ti  
ha consigliato Select Astronomy mi sembra più pulita (o più "seria")  
questo potrebbe essere un "trucco" veloce per far funzionare il tutto.
-- 
Una volta che avete conosciuto il volo, camminerete sulla Terra guardando
il cielo, perché là siete stati e là desiderate tornare (Leonardo da Vinci)
Opera 7.50 Preview 3 Build  3658 Java 1.4.2.03 Flash 7.0.19
Using M2, Opera's revolutionary e-mail client: 
http://www.opera.com/m2/

 (o TForm se non hai bisogno di accedere all'interfaccia specifica di
TForm1).
così potrebbe già andar meglio!!!:)!!
ciao
   gabriele

 end;
Questo codice non č logicamente corretto.  Purtroppo Delphi abitua
male.  Non puoi e NON DEVI fare riferimento a *UN'ISTANZA* specifica
(Form1) nel codice di *UNA CLASSE*.  Il codice che scrivi nel metodo
Button1Click č codice appartenente alla classe, che č tenuto ad
ignorare del tutto che esista un Form1 da qualche parte.  Il codice
delle classi deve sempre garantire l'autocontenimento, quindi quel
riferimento "Form1" deve semmai diventare "Self".  Se tu creassi a
run-time le istanze di TForm1, il tuo codice non funzionerebbe in modo
corretto.

 end;
Ma quante ne sai!........