Teşekkürler,
Halloldu ancak bir sorum olacak. Ben beforeedit'e yazmıştım kodu, döngüye girip "stack overflow" diye bir hata veriyordu.
Afteredit'e yazınca sorun halloldu. Neden, afteredit'te olmasının farkı ne?
Örnek olarak tablonun biri için yazdığım kod:
procedure Tdm.tblnikahAfterEdit(DataSet: TDataSet);
begin
if not(tblerkek.State in [dsedit]) then tblerkek.Edit;
if not(tblkadin.State in [dsedit]) then tblkadin.Edit;
end;
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Cunku 1. tabloya edit yapilmadan once diger iki tabloyu da edit moduna gecirmeye calisiyordunuz... Dolayisiyla hemen 2. ve 3. tablonunda beforeeditleri calisiyordu. Oradaki kodlar da diger iki tabloyu yani 1. taqbloyu edit moduna getirmeye calisiyordu. yaptiginiz state kontrolu henuz 1. tablo edit moda gecmedigi icin ise yaramiyor ve 1. tablonun edit modu tekrar calisiyor. Tabi diger tablolarin edit motodlarini tekrar cagiriyor derken bu booooyle surup gidiyor.... taaaki stack dolup da oferflow olana kadar... Yani klasik tabiriyle kısır donguye giriyor program... Bu 3 evente breakpoint koyarsanız bu kısır donguyu topun nasıl oradan oraya atıldıgını da gorebilirsiniz....