[ pela @ 25.03.2008. 23:52 ] @
Puna forma db kontrola, svega i svacega po malo, tu i tamo po neka procedura i koja promenljiva levo desno....
Kako da ocistim formu i sve promnljive (lokalne ili globalne) na zatvaranje forme.
Tako da sledeci put kad se otvori, sve bude cisto i spremno za novi unos podataka?

Koristim tms kontrole (tms pack) i microolap-ove mysql komponente (dac for mysql) za unos i rad sa bazom.


pozdr.
pela
[ savkic @ 26.03.2008. 01:21 ] @
> Puna forma db kontrola, svega i svacega po malo, tu i tamo po neka procedura i koja promenljiva levo desno....
> Kako da ocistim formu i sve promnljive (lokalne ili globalne) na zatvaranje forme.
> Tako da sledeci put kad se otvori, sve bude cisto i spremno za novi unos podataka?

Definiši očistiti formu? Ako se forma uništava, posle pravljenja nove sve će biti na default vrednostima. Ako koristiš DBaware kontrole one podatke uzimaju direktno iz dataset polja.
[ pela @ 27.03.2008. 21:19 ] @
Da preformulisem onda.. kako pravilno po ps-u da 'unistim' ocistim (free, destroy ili neki drugi nacin...) formu.

Primer:
pozivam formu klikom na dugme 'otvori' gde se izvrsava:
dtMdl.recordsTbl.Append;// datamodul.mysqlTabela.Append
recordsFrm.ShowModal; //

Nemam dbnavigator na formi samo unesi i otkazi dugmad.

Zatim...ubucujem neke podatke, idem od panela do panela, krecem se po tabovima i tome slicno. Ubacim podatke u bazu klikom na dugme za unos gde sam plus stavio recordsFrm.Close;

Sledeci put kad kliknem 'otvori' dugme za otvaranje one iste forme, javlja mi forma u poziciji gde sam zadnji put bio na tabovima i svi podaci koje sam popunio tokom rada jos uvek stoje u poljima. Od Append-a ni traga ni glasa...

Inace svi podaci su prethodnim klikom na 'unesi' dugme uspesno uneti u bazu.

Mali korak za forum ali veliki za delphanstvo..
Eto to me muci :)



[ pela @ 28.03.2008. 00:46 ] @
Evo ga....konkretno za gornji slucaj


procedure TmainFrm.newRecordsBtnClick(Sender: TObject);
begin
Application.CreateForm(TrecordsFrm, recordsFrm);
try
dtMdl.recordsTbl.Append;
recordsFrm.showModal;
finally
recordsFrm.Release;
end;
end;
[ savkic @ 28.03.2008. 01:09 ] @
Standardni način je:

Code:

var
  frm: TForm;
begin
  frm := TForm.Create(nil);
  try
    frm.ShowModal;
  finally
    frm.Free;
  end;
end;


Ako se posle startovanja forme prikaže prethodno uneti slog a koristiš dbaware kontrole, znači da ti se dataset nalazi na tom slogu i da je u edit stanju, ili da je u insert stanju a da su vrednosti iskopirane iz prethodnog sloga, u svakom slučaju to je nešto što dolazi iz tvog koda.