MDIForm a ağırdığım MDIChild formdaki butonların içindeki kodları nasıl çalıştırabilirim.
Access violation at address 0055c2b7 in module 'OdemeEmri.exe'. Read of address 000002f8
nesne/ler henüz oluşturulmamış olduğu forumda da geçiyor bunla ilgili maklelrede baktım ama hiç bir şey anlamadım.nesne nedir nasıl oluşturuluyor kaldıki MDIForm dan MDIChild formu
Kod: Tümünü seç
procedure TForm3.BitBtn3Click(Sender: TObject); //MDIForm
begin
if Assigned(Form8) then
Form8.BringToFront
else
Application.CreateForm(Tform8,Form8);
end;
ile formu create ediyorum ve fsMDIChild
procedure TForm8.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
Form8 := nil;
end;
bu koşulda açılan MDIChild formdaki edit,post işlemlerini yapabiliyorum ama diğer butonları çalıştıramıyorum.öreneğin
Kod: Tümünü seç
procedure TForm8.suiButton9Click(Sender: TObject);
function rakyazf(tutar: real; tur: integer): string;
const
b1: array[1..9] of string =
('BİR', 'İKİ', 'ÜÇ', 'DÖRT', 'BEŞ', 'ALTI', 'YEDİ', 'SEKİZ', 'DOKUZ');
b2: array[1..9] of string =
('ON', 'YİRMİ', 'OTUZ', 'KIRK', 'ELLİ', 'ALTMIŞ', 'YETMİŞ', 'SEKSEN',
'DOKSAN');
b3: array[1..6] of string =
('KATRİLYON', 'TRİLYON', 'MİLYAR', 'MİLYON', 'BİN', '');
var
gr: array[1..6] of string[3];
sn: array[1..6] of string;
bs: array[1..3] of integer;
tutars, tutart, tutark, sonuct, sonuck: string;
i, l: integer;
begin
tutars := floattostr(tutar);
if pos(DecimalSeparator, tutars) = 0 then
tutars := tutars + DecimalSeparator+'00';
tutart := copy(tutars, 1, (pos(DecimalSeparator, tutars) - 1));
tutark := copy(tutars, (pos(DecimalSeparator, tutars) + 1), 2);
tutart := stringofchar('0', (18 - (length(trim(tutart))))) + tutart;
tutark := tutark + stringofchar('0', (2 - (length(trim(tutark)))));
for i := 1 to 6 do
gr[i] := copy(tutart, 1 + (3 * (i - 1)), 3);
for l := 1 to 6 do
begin
bs[1] := strtoint(copy(gr[l], 1, 1));
if bs[1] <> 0 then
(if bs[1] <> 1 then
sn[l] := sn[l] + b1[bs[1]] + 'YÜZ'
else
sn[l] := sn[l] + 'YÜZ');
bs[2] := strtoint(copy(gr[l], 2, 1));
if bs[2] <> 0 then
sn[l] := sn[l] + b2[bs[2]];
bs[3] := strtoint(copy(gr[l], 3, 1));
if bs[3] <> 0 then
sn[l] := sn[l] + b1[bs[3]];
if length(trim(sn[l])) <> 0 then
sn[l] := sn[l] + b3[l];
end;
if sn[5] = 'BİRBİN' then
sn[5] := 'BİN';
for i := 1 to 6 do
sonuct := sonuct + sn[i];
if strtoint(copy(tutark, 1, 1)) <> 0 then
sonuck := sonuck + b2[strtoint(copy(tutark, 1, 1))];
if strtoint(copy(tutark, 2, 1)) <> 0 then
sonuck := sonuck + b1[strtoint(copy(tutark, 2, 1))];
if tur = 0 then
result := sonuct + '.TL / ' + sonuck + '.KR ';
if tur = 1 then
result := sonuct + '.TL ';
if tur = 2 then
result := sonuck + '.KR ';
end;
begin
IBDataSet_BURS.FetchAll;
IBDataSet_BURS.First; //döngü başlangıcı
While not IBDataSet_BURS.Eof do
begin
IBDataSet_BURS.Edit;
IBDataSet_BURS.FieldByName('DVERGI').Value:= IBDataSet_BURS.FieldByName('BODENEK').Value* Form2.IBDataSet_KURUMSABIT.FieldByName('DORANI').Value;
IBDataSet_BURS.FieldByName('EGECEN').Value:= IBDataSet_BURS.FieldByName('BODENEK').Value-IBDataSet_BURS.FieldByName('DVERGI').Value;
IBDataSet_BURS.Post;
IBDataSet_BURS.Next;
end;
IBTransaction1.CommitRetaining;
//alttplam
with IBQuery1 do
IBDataSet_ALTTOPLAM.edit;
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select sum(BODENEK) as TOPLAM_BURUTTOPLAM from TBL_BURS ');
IBQuery1.Open;
IBDataSet_ALTTOPLAM.FieldByName('BTOPLAM').value:=FloatToStr(IBQuery1.FieldByName('TOPLAM_BURUTTOPLAM').AsFloat);
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select sum(DVERGI) as TOPLAM_DAMGATOPLAM from TBL_BURS ');
IBQuery1.Open;
IBDataSet_ALTTOPLAM.FieldByName('DTOPLAM').value:=FloatToStr(IBQuery1.FieldByName('TOPLAM_DAMGATOPLAM').AsFloat);
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('select sum(EGECEN) as TOPLAM_ELEGECENTOPLAM from TBL_BURS ');
IBQuery1.Open;
IBDataSet_ALTTOPLAM.FieldByName('ETOPLAM').value:=FloatToStr(IBQuery1.FieldByName('TOPLAM_ELEGECENTOPLAM').AsFloat);
IBDataSet_ALTTOPLAM.post;
IBTransaction1.CommitRetaining;
//alttoplam
//nakit kodlarına geçiş
with IBQuery2 do
form9.IBDataSet_HESAP.edit; //NAKIT BİLGİSİNİN HESAPLANMASI İÇİN GÖNDERİMİ
IBQuery2.Close;
IBQuery2.SQL.Clear;
IBQuery2.SQL.Add('select sum(BODENEK) as TOPLAM_ODENEK from TBL_BURS ');
IBQuery2.Open;
form9.IBDataSet_HESAP.FieldByName('NAKIT').value:=FloatToStr(IBQuery2.FieldByName('TOPLAM_ODENEK').AsFloat);
form9.IBDataSet_HESAP.FieldByName('DAMGA').value:=form9.IBDataSet_HESAP.FieldByName('NAKIT').value*form2.IBDataSet_KURUMSABIT.FieldByName('DORANI').value;
form9.IBDataSet_HESAP.FieldByName('GELIR').value:=form9.IBDataSet_HESAP.FieldByName('NAKIT').value*form2.IBDataSet_KURUMSABIT.FieldByName('GORANI').value;
form9.IBDataSet_HESAP.FieldByName('EGECEN').value:=form9.IBDataSet_HESAP.FieldByName('NAKIT').value-(form9.IBDataSet_HESAP.FieldByName('DAMGA').value+form9.IBDataSet_HESAP.FieldByName('GELIR').value); //ele geçen
form9.IBDataSet_HESAP.FieldByName('YNAKIT').value:='Yukarıda Yazılı #'+(rakyazf(form9.IBDataSet_HESAP.FieldByName('NAKIT').value, 0))+'# Tahakku Ettilmiştir.Ödemesi/Mahsubu Gerekir'; //tahakkuk yazı
form9.IBDataSet_HESAP.FieldByName('YGECEN').value:='Yanlız #'+(rakyazf(form9.IBDataSet_HESAP.FieldByName('EGECEN').value, 0))+'# Aldım'; //elegeçen yazı
form9.IBDataSet_HESAP.FieldByName('KESINTITOPLAM').value:=form9.IBDataSet_HESAP.FieldByName('GELIR').value+form9.IBDataSet_HESAP.FieldByName('DAMGA').value;
form9.IBDataSet_HESAP.post;
form9.IBTransaction1.CommitRetaining;
Form1.IBQuery1.SQL.Clear;
Form1.IBQuery1.SQL.Add('select count(*) from TBL_NAKIT_DEYAT where IDNAKIT='+FORM1.dbEdit1.text+'' );
Form1.IBQuery1.open;
Form1.IBDataSet_DETAY.FetchAll;
Form1.IBDataSet_DETAY.First; //döngü başlangıcı
While not Form1.IBDataSet_DETAY.Eof do
begin
if (form1.IBDataSet_DETAY.FieldByName('KB').value='N') or (form1.IBDataSet_DETAY.FieldByName('KB').value='n') then
begin
Form1.IBDataSet_DETAY.edit;
Form1.IBDataSet_DETAY.fieldbyname('BORC').Value:= Form9.IBDataSet_HESAP.FieldByName('NAKIT').value;
//Kamu Personel İlaç Giderleri
Form1.IBDataSet_DETAY.post;
end;
if (form1.IBDataSet_DETAY.FieldByName('KB').value='D') or (form1.IBDataSet_DETAY.FieldByName('KB').value='d') then
begin
Form1.IBDataSet_DETAY.edit;
Form1.IBDataSet_DETAY.fieldbyname('BORC').Value:= Form9.IBDataSet_HESAP.FieldByName('DAMGA').value;
//Damga Vergisi
Form1.IBDataSet_DETAY.post;
end;
if (form1.IBDataSet_DETAY.FieldByName('KB').value='G') or (form1.IBDataSet_DETAY.FieldByName('KB').value='g') then
begin
Form1.IBDataSet_DETAY.edit;
Form1.IBDataSet_DETAY.fieldbyname('BORC').Value:= Form9.IBDataSet_HESAP.FieldByName('GELIR').value;
//Damga Vergisi
Form1.IBDataSet_DETAY.post;
end;
if (form1.IBDataSet_DETAY.FieldByName('KB').value='K') or (form1.IBDataSet_DETAY.FieldByName('KB').value='k') then
begin
Form1.IBDataSet_DETAY.edit;
Form1.IBDataSet_DETAY.fieldbyname('BORC').Value:= Form9.IBDataSet_HESAP.FieldByName('KESINTITOPLAM').value;
//Damga Vergisi
Form1.IBDataSet_DETAY.post;
end;
if (form1.IBDataSet_DETAY.FieldByName('KB').value='E') or (form1.IBDataSet_DETAY.FieldByName('KB').value='e') then
begin
Form1.IBDataSet_DETAY.edit;
Form1.IBDataSet_DETAY.fieldbyname('BORC').Value:= Form9.IBDataSet_HESAP.FieldByName('EGECEN').value;
//Verilen Gönderme Emirleri Hesabı
Form1.IBDataSet_DETAY.post;
end;
if (form1.IBDataSet_DETAY.FieldByName('KA').value='N') or (form1.IBDataSet_DETAY.FieldByName('KA').value='n') then
begin
Form1.IBDataSet_DETAY.edit;
Form1.IBDataSet_DETAY.fieldbyname('ALACAK').Value:= Form9.IBDataSet_HESAP.FieldByName('NAKIT').value;
//Kamu Personel İlaç Giderleri
Form1.IBDataSet_DETAY.post;
end;
if (form1.IBDataSet_DETAY.FieldByName('KA').value='D') or (form1.IBDataSet_DETAY.FieldByName('KA').value='d') then
begin
Form1.IBDataSet_DETAY.edit;
Form1.IBDataSet_DETAY.fieldbyname('ALACAK').Value:= Form9.IBDataSet_HESAP.FieldByName('DAMGA').value;
//Damga Vergisi
Form1.IBDataSet_DETAY.post;
end;
if (form1.IBDataSet_DETAY.FieldByName('KA').value='G') or (form1.IBDataSet_DETAY.FieldByName('KA').value='g') then
begin
Form1.IBDataSet_DETAY.edit;
Form1.IBDataSet_DETAY.fieldbyname('ALACAK').Value:= Form9.IBDataSet_HESAP.FieldByName('GELIR').value;
//Damga Vergisi
Form1.IBDataSet_DETAY.post;
end;
if (form1.IBDataSet_DETAY.FieldByName('KA').value='K') or (form1.IBDataSet_DETAY.FieldByName('KA').value='k') then
begin
Form1.IBDataSet_DETAY.edit;
Form1.IBDataSet_DETAY.fieldbyname('ALACAK').Value:= Form9.IBDataSet_HESAP.FieldByName('KESINTITOPLAM').value;
//Damga Vergisi
Form1.IBDataSet_DETAY.post;
end;
if (form1.IBDataSet_DETAY.FieldByName('KA').value='E') or (form1.IBDataSet_DETAY.FieldByName('KA').value='e') then
begin
Form1.IBDataSet_DETAY.edit;
Form1.IBDataSet_DETAY.fieldbyname('ALACAK').Value:= Form9.IBDataSet_HESAP.FieldByName('EGECEN').value;
//Verilen Gönderme Emirleri Hesabı
Form1.IBDataSet_DETAY.post;
end;
form1.IBDataSet_DETAY.Next;
end;
form1.IBTransaction1.CommitRetaining;
with Form1.IBQuery2 do //borç alttoplam
Form1.IBQuery2.Close;
Form1.IBQuery2.SQL.Clear;
Form1.IBQuery2.SQL.Add('select sum(BORC) as TOPLAM_BORC from TBL_NAKIT_DEYAT where IDNAKIT='+FORM1.DBEdit1.text+'');
Form1.IBQuery2.Open;
form1.IBDataSet_ALTTOPLAM.Edit;
form1.JvDotNetDBEdit4.text:=FloatToStr(Form1.IBQuery2.FieldByName('TOPLAM_BORC').AsFloat);
form1.IBDataSet_ALTTOPLAM.post;
form1.IBTransaction1.CommitRetaining;
with Form1.IBQuery2 do //ALACAK alttoplam
Form1.IBQuery2.Close;
Form1.IBQuery2.SQL.Clear;
Form1.IBQuery2.SQL.Add('select sum(ALACAK) as TOPLAM_ALACAK from TBL_NAKIT_DEYAT where IDNAKIT='+FORM1.DBEdit1.text+'');
Form1.IBQuery2.Open;
form1.IBDataSet_ALTTOPLAM.Edit;
form1.JvDotNetDBEdit2.text:=FloatToStr(Form1.IBQuery2.FieldByName('TOPLAM_ALACAK').AsFloat);
form1.IBDataSet_ALTTOPLAM.post;
form1.IBTransaction1.CommitRetaining;
if form1.JvDotNetDBEdit4.text<>form1.JvDotNetDBEdit2.text then
begin
form1.JvDotNetDBEdit2.color:=clRed;
form1.JvDotNetDBEdit2.color:=clRed;
end;
if form1.JvDotNetDBEdit4.text=form1.JvDotNetDBEdit2.text then
begin
form1.JvDotNetDBEdit2.color:=clWindow;
form1.JvDotNetDBEdit2.color:=clWindow;
end;
showmessage('işlem tmm');
end;

