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

Ciao a tutti,
ho un problema: nel mio programma creo una form (form2) derivandola (e non 
modificandola) da un'altra mia unit (form1).
Ora se compilo il programma vedo correttamente la form2, ma in fase di 
editing la form 2 č vuota, cioč non mi mostra i componenti invece presenti 
nella form1.
come posso fare?
Ciao,
Daniel 

 nella form1.
Per sicurezza, cita la versione di Delphi che stai utilizzando.
Ciao! :-)
-- 
MARCO «Alka» BREVEGLIERI
   (
http://www.marco.breveglieri.name
)
Leggi le FAQ di ICLD: 
http://icld.altervista.org

 presenti nella form1.
In Delphi esiste un modo, se crei la tua form base ( Form1 ) e poi vuoi 
ereditare tutto di Form1 in un'altra Form devi creare la tua Form con 
tutti i componenti che ti servono e il suo comportamento, poi vai nel menu
File/New/Other vai sulla pagina del tuo progetto, toverai Form1 fai 
doppio click e avrai una Form2 che eradita da Form1
type
  TForm2 = class(TForm1)   (* <------------------ *)
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
Ora in Form2 vedrai a design time tutti i componenti che hai messo in 
Form1 con tutto il suo comportamento con la possibilità di aggiungere 
altre funzionalita.
Naturalemente se modifichi Form1 le modifiche saranno presenti in Form2.
Diego
--- posted by geoForum on 
http://www.delphiedintorni.it

 ha scritto nel messaggio 
news:PZ1ae.2007$ms1....@tornado.fastwebnet.it...


 ha scritto nel messaggio 
news:qwR9e.3468$TR5....@news.edisontel.com...


> Cosa c'è che non va?
ce che non lo devi fare a manella ma con l'IDE come ti ho descritto.


 Cosa c'è che non va?
Il problema deriva dal fatto che Form, Frame e Data Module ereditati, 
oltre ad avere una dichiarazione di classe consona, possiedono anche un 
DFM appropriato. Nel tuo caso, hai modificato solamente il codice 
sorgente ereditando "a mano" il tuo form da una classe già esistente.
Per sfruttare la Visual Form Inheritance, devi seguire il procedimento 
che ti è già stato indicato.
Il fatto che, a runtime, tu ottenga la visualizzazione corretta del form 
è fuorviante e dipende probabilmente dal "grado di parentela" esistente 
nel codice vero e proprio, ma a designtime Delphi non è in grado di 
fornirti il supporto dato che la form non è stata creata in principio 
con la classe superiore che hai scelto in un momento successivo.
Io ti ho chiesto espressamente la versione di Delphi poichè utilizzando 
Delphi.NET e Windows Forms il discorso cambia: è assente il DFM vero e 
proprio (le proprietà sono assegnate esclusivamente da codice, e 
pertanto in tal caso il tuo procedimento va a buon fine).


 ha scritto nel messaggio 
news:1v3ae.2210$ms1....@tornado.fastwebnet.it...


 ho capito e risolto...
Apro un fork di questo thread perche',incuriosito dall'argomento, vorrei
chiedere in quali casi siete ricorsi alla visual form inheritance: nei
pochi casi in cui ci ho provato, l'ho trovato inutile in quanto
(ovviamente) tutti i controlli ereditati dal form padre permangono
readonly.
Ciao
-- 
Morde. 
FAQ di icld (beta-version): 
http://icld.altervista.org
 
M-List di icld: 
http://it.groups.yahoo.com/group/icld/

 readonly.
Prego? :-)
I controlli ereditati dal form padre possono essere modificati a 
piacimento attraverso l'Object Inspector. L'unica cosa che non puoi fare 
č *rimuovere* i controlli ereditati, per il semplice fatto che sono 
istanziati dalla classe superiore.


 istanziati dalla classe superiore.
Si' hai ragione Marco, quello che volevo fare io e' duplicare un form per
risparmiare tempo, non tanto ereditare e sfruttare il form figlio in senso
"object oriented". Cosa risolta col metodo di copiare il pas e il dfm in
una temp, aprire il pas, cambiare nome al form e con "save as" anche al
pas, per poi includere il tutto nel progetto finale.
:)


 :)
In tal caso, usa l'*Object Repository* di Delphi che è molto più comodo: 
ti risparmia l'operazione manuale di dover rinominare classi e file 
senza correre rischi di...sovrascrivere elementi importanti. :-)


 senza correre rischi di...sovrascrivere elementi importanti. :-)
Terro' a mente il tuo consiglio la prox volta che avro' bisogno di
duplicare un form :)
Ciao e grazie


 file senza correre rischi di...sovrascrivere elementi importanti. :-)
si, anche secondo me aggiungere la form al repository è comodo, cosi hai 
a disposizione la form la duplicare in un click senza dover modificare il 
codice in più punti.


 "object oriented".
Il repository ti offre le tre modalità: "Copy", "Inherit" e "Use" proprio
per questo motivo.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it