Newsgroup: it.comp.lang.delphi
Titolo: bds2006 Windows Form

ho un dubbio sulla distruzione di  un form child
var  Child1:TWinForm1;
procedure TWinForm.Button1_Click(sender: System.Object; e: 
System.EventArgs);
begin
  Child1:=TWinForm1.Create;
  Child1.MdiParent:=Self;
  Child1.Show();
end;
nota se uso Child1.MidParent:=TWinForm; , ottengo errore
[Pascal Error] WinForm.pas(103): E2010 Incompatible types: 'Form' and 'Class 
reference'
eppure TWinForm e' il form padre.
per la distruzione , nell'evento closed
procedure TWinForm1.TWinForm1_Closed(sender: System.Object; e: 
System.EventArgs);
begin
  Dispose;
end;
e' corretto ?
grazie Stefano 

 e' corretto ?
Credo che una buona regola iniziale sia quella di utilizzare nomi 
significativi e non ambigui.
In secondo luogo, siccome stai lavorando con il .NET Framework (ma la 
norma si applicherebbe ugualmente anche alle normali applicazioni VCL), 
dovresti evitare l'introduzione di variabili globali rendendole parte 
della classe che ne fa uso.
Per la creazione di "MDI Application", devi attribuire al form 
principale la caratteristica di "MDI Container", attraverso l'apposita 
proprietà (IsMdiContainer).
Successivamente, con un pulsante, un menu o qualsiasi altro controllo 
desideri, devi creare l'istanza del form figlio e visualizzarlo nel form 
principale contenitore. Io ho usato una voce di menu:
procedure TMainForm.MenuItem2_Click(sender: System.Object;
   e: System.EventArgs);
var
   Frm: TChildForm;
begin
   Frm := TChildForm.Create;
   Frm.MdiParent := Self;
   Frm.Show;
end;
Non è necessario inserire chiamate a /Dispose/, nel tuo caso, 
nell'evento di chiusura del Form.
P.S.:
lavori in Windows Forms poiché così ti è stato richiesto? come mai non 
fai uso della libreria VCL?
Ciao,
   Marco.
-- 
MARCO BREVEGLIERI
  (
http://www.marco.breveglieri.name
)

>
sto provando Windows Form , per vedere le differenze rispetto ad VCL.Net,
dove ho notato che le finestre MDI sono come nella VCL32
pero' nei vari manuali reperibili in rete , si hanno sempre esempi basati su
Windows Form, anche se riferiti a 
vb.net
mi chiedo se VCL.Net usi le classi del Fw.Net , come Windows.Form o se sia
uno strato intermedio, per migrare da Win32 a .Net.
mi pare di capire una carta riluttanza verso Windows.Form , questione di 
abitudini
o c'e qualche motivo legato ai limiti verso queste ?
ciao Stefano

 o c'e qualche motivo legato ai limiti verso queste ?
Nel mio caso, si tratta di una riluttanza che deriva da un'esperienza 
personale particolarmente infelice con la libreria in questione, che non 
sopporto per la presenza di molteplici bug anche nelle cose più 
semplici, come può essere la visualizzazione di una banale ScrollBar 
all'interno di un controllo TreeView o la selezione di un intervallo di 
giorni da un calendario, oltre alla mancanza di altri strumenti 
architetturali come i /DataModule/, i riferimenti "cross module" (da 
unit a unit), in sostanza mi ha dato l'impressione di essere una 
libreria per niente matura, piena di difetti, che fornisce meno 
funzionalità rispetto a quelle che sono abituato ad utilizzare nella 
VCL. E siccome non sono costretto ad adottarla in quanto non sviluppo 
esclusivamente in Visual Studio, non lo faccio. :-)
In generale, quindi, rimango sulla libreria VCL, preferibilmente Win32, 
quando non vi sono richieste particolari che mi obblighino ad adoperare 
un altro strumento. Tutto qui. :-)
