Merhaba arkadaşlar.
Aşşağıdaki kod da hata mesajından sonra formda herhangi bir yere tıklama yapınca kurtuluyor. istegim kullanıcı düzelme yapmadan çıkamasın.
procedure TForm1.DBGrid1Exit(Sender: TObject);
var
toplam : Extended;
begin
ADOQuery1.Active:=false;
ADOQuery1.Active:=true;
toplam := 0;
ADOQuery1.first ;
while not ADOQuery1.eof do
begin
toplam := TOPLAM + (ADOQuery1.fieldbyname ('Horiz_Facings').asfloat * ADOQuery1.fieldbyname ('Width').asfloat ) ;
ADOQuery1.next;
end;
ADOTable1.Post;
begin
if toplam > ADOQuery1.FieldByName('SEG_GEN').AsFloat Then
ShowMessage('hata'+chr(13)+chr(13)+'Genislik Tutmuyor. Lütfen düzeltin '+chr(13)+FloatToStr(Toplam));
end;
end;
yardımcı oluırsanız çok sevinirim.
şimdiden teşekkürler
procedure TCariHesapAcilisIslemFrm.DBGrid1ColEnter(Sender: TObject);
var
DateTime : TDateTime;
CariKodu:String;
CariUnvan:String;
begin
//0 İNDEX ÇIKIŞINDA KONTROL ET
if DBGrid1.SelectedIndex = 1 Then
Begin
//CariKod işlemleri
CariKodu := DBGrid1.Columns[0].Field.Text;
if CariKodu = '' Then
Begin
IBDataSet1.Edit;
IBDataSet1.FieldByName('CARIUNVAN').AsString := '';
IBDataSet1.Post;
End
Else
Begin
with IBQuery1 do
Begin
Close;
Sql.Clear;
Sql.Add('Select * From CARIKART Where CARIKOD = '''+cariKodu+'''');
Open;
End;
if IBQuery1.RecordCount < 1 Then
Begin
ShowMessage('Cari Hesap Kodu Yanlış');
DBGrid1.SelectedIndex := 0;
End
Else
Begin
IBDataSet1.Edit;
IBDataSet1.FieldByName('CARIUNVAN').AsString := IBQuery1.fieldByName('CARIUNVAN').AsString;
IBDataSet1.Post;
End;
End;
End
Else
//1 İNDEX ÇIKIŞINDA KONTROL ET
if DBGrid1.SelectedIndex = 2 Then
Begin
if DBGrid1.Columns[0].Field.Text = '' Then
CariUnvan := DBGrid1.Columns[1].Field.Text;
if CariUnvan <> '' Then
Begin
with IBQuery1 do
Begin
Close;
Sql.Clear;
Sql.Add('Select * From CARIKART Where CARIUNVAN = '''+CariUnvan+'''');
Open;
End;
if IBQuery1.RecordCount > 0 Then
Begin
IBDataSet1.Edit;
IBDataSet1.FieldByName('CARIKOD').AsString := IBQuery1.fieldByName('CARIKOD').AsString;
IBDataSet1.Post;
End
Else
Begin
ShowMessage('CARİ ÜNVAN YANLIŞ');
DBGrid1.SelectedIndex := 1;
End;
End;
End;
end;
Kodunu incelemedim ama örnek olarak kendi kodumu veriyorum.
if'in altndaki Mesaj verilen kısmı Begin end bloğu içine al ve hangi hücre'de koşul işlemi veryiyorsan DBGrid1.SelectedIndex := 1; gibi bir ifade kullan.
aslangeri teşekkürler
setfocusla olayı çözdüm.
benim burdaki mantıgım çok yanlışmış. Her seferinde mesajı onayladıktan sonra döngüyü tekrar yapsın istemiştim. Zaten çıkarken tekrar kontrol ediyordu