[ nnn @ 23.04.2005. 18:48 ] @
Imam Napravljenu proceduru kad mi se kreira form3. Sad postu u programu treba da je opet uradim isto to kako ja samo da je pozovem. ja sam probao Tform3.create; Tform3.create(); (tako sam nasao u helpu), ali nece
[ Srki_82 @ 23.04.2005. 19:00 ] @
Ako je pozivas iz klase TForm3 dovoljno je da napises Create(Self), a ako je pozivas iz neke druge klase onda moras napisati Form3.Create(Form3) (pod uslovom da je Form3 instanca klase TForm3).
[ nnn @ 23.04.2005. 19:10 ] @
Probao sam to ali mi napise nesto Project Project1.exe raised exception class EstackOverflow with message 'Stack overflow'.Process stopped....
Ona idem Ok i nastavim i napise Project c:\..... faulted with message: 'access violation at 0x0041dd8e:Write of address 0x0003offc/.Proecess stopped...
[ Nemanja Avramović @ 23.04.2005. 19:13 ] @
a zasto uopste treba ponovo da kreiras formu? objasni, mozda moze to da se zaobidje...
[ nnn @ 23.04.2005. 19:20 ] @
Ne trebam da kreiram ponovo formu nego da uradim onaj kod sto se nalazi u njemu.
Mislio sam posto je to procedura mogo bih samo da je opet pozovem kao funkciju. Posto pravim neki program i stavio sam 'on create'(u ovom slucaju form3) da mi izcita fajl i da mi u listu ispise... Sad kad ja u medjuvremenu na drugim formovima depisem nesto u taj fajl kad opet udjem putem menia u form3 on meni ne izlista te nove podatke.
[ Nemanja Avramović @ 23.04.2005. 19:45 ] @
znao sam da to hoces ;)

napravi ovako nesto
Code:

procedure TForm3.StartUp(); //ako je Form3
var ... //promenljive
begin
... //sta radi on create
end;


a oncreate samo pozovi
Code:
Startup;


a kad ti zatreba opet, samo opet pozoves
Code:
Startup;


ili samo to oncreate prebaci u onshow... onda ce raditi
[ johnnie @ 23.04.2005. 20:59 ] @
to nnn:

imas stack overflow...

probaj da u event form3.onclose ubacis
Code:
action:=cafree;
form3:=nil;


tako da kad god zatvoris formu, ne zauzima memoriju; onda ne bi trebalo da imas problem kad je pozivas kaako si opisao.Proveri...
[ _v!rus_ @ 25.04.2005. 20:33 ] @
Srki_82 wrote:
Citat:
Ako je pozivas iz klase TForm3 dovoljno je da napises Create(Self), a ako je pozivas iz neke druge klase onda moras napisati Form3.Create(Form3)


Nece tako da moze...
Create je konstruktor, ne event procedura, i konstruktor ne mozes pozvati iz instance. FormCreate je event procedura...

Dakle,
Code:

FormCreate(Self) 
// ili 
Form3.FormCreate(Self) 
//ako iz druge forme pozivas FormCreate


Ukoliko ne proveravas Sender parametar u proceduri FormCreate, mozes koristiti bilo sta, ne treba ti Form3.FormCreate(Form3). Sender je koristan kada ti vise komponenti koristi isti EventHandler. Tada pomocu provere Self parametra mozes da razgranicis ko je okinuo handler. Npr. OnChange kolicine ili cene treba da ti se osvezi suma, glupo bi bilo pisati isti kod 2x, samo dodelis isti handler za vise komponenti, a ako treba nesto specifcno za odredjenui komponentu onda proveravas Sender.



[Edit]
...tek sada vidim da si sam sebi odgovorio u naslovu teme
[ johnnie @ 05.05.2005. 23:18 ] @
Da, sam je sebi odgovorio...
[ nnn @ 06.05.2005. 09:03 ] @
Hvala vam svima, uspeo sam. Negde sam prebacio on show, a drugde sam stavio Form3.FormCreate(Self).