Şart yerine getirilmeden hata mesajından kurtulmasın

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Armani
Üye
Mesajlar: 104
Kayıt: 18 Mar 2004 05:32
Konum: Ankara

Şart yerine getirilmeden hata mesajından kurtulmasın

Mesaj gönderen Armani »

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.

Kod: Tümünü seç

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
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Kod: Tümünü seç

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.

Kolay Gelsin....

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
showmessage den sonra dbgrid1.setfocus derseniz sanırım istediğiniz şey olur.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

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.

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

showmessage dan hemen sonra abort procedure ünüde kullanabilirsin. tabiki anyı blokta. kolay gelsin.
DeveloperToolKit

..::|YeşilMavi|::..
Armani
Üye
Mesajlar: 104
Kayıt: 18 Mar 2004 05:32
Konum: Ankara

Mesaj gönderen Armani »

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 :oops:

çok teşekkürler
Cevapla