Application.MessageBox(...) mesajı tekrarlıyor!

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
muratn
Üye
Mesajlar: 4
Kayıt: 13 Eyl 2010 01:42

Application.MessageBox(...) mesajı tekrarlıyor!

Mesaj gönderen muratn »

Merhaba arkadaşlar;
Nerede eksiğim var anlayamadım, Bana yardımcı olur musunuz? Kod aşağıda. İstediğimi yaptırabiliyorum ancak ekrana çıkan "Uyarı" mesajımdaki "Tamam" butonuna 2 kere basmak zorunda kalıyorum.

Kod: Tümünü seç

procedure TForm_GELENHAMMADDE.DateTimePicker1Change(Sender: TObject);
begin
  GELEN_TARIH := DateToStr(DateTimePicker1.Date);
  IBDataSet_GELENHAMMADDE.Locate('GELEN_TARIH', GELEN_TARIH,[]);
    if GELEN_TARIH = IBDataSet_GELENHAMMADDEGELEN_TARIH.Text then
    begin
      DateTimePicker1.Color := clLime;
    end
    else
    begin
      DateTimePicker1.Color := clWhite;
      Application.MessageBox('Seçtiğiniz tarihte kayıt bulunamadı.','Uyarı', MB_OK or MB_ICONINFORMATION);
    end;
end;
akdatilla
Üye
Mesajlar: 292
Kayıt: 02 Nis 2006 06:04
Konum: Antalya

Re: Application.MessageBox(...) mesajı tekrarlıyor!

Mesaj gönderen akdatilla »

uyarı mesajından sonra Abort; komutunu kullanın
muratn
Üye
Mesajlar: 4
Kayıt: 13 Eyl 2010 01:42

Re: Application.MessageBox(...) mesajı tekrarlıyor!

Mesaj gönderen muratn »

akdatilla yazdı:uyarı mesajından sonra Abort; komutunu kullanın
İlgilendiğiniz için teşekkürler, ancak olmadı. Yine 2 defa "Tamam" butonuna basıyorum.
Code_Monster
Üye
Mesajlar: 16
Kayıt: 09 Tem 2010 10:36

Re: Application.MessageBox(...) mesajı tekrarlıyor!

Mesaj gönderen Code_Monster »

bence kodun 2 kere çalışıyor şöyleki bu kodu sen datetimepicker nin change olayına yazmışsın şöyle oluyor tahminim
1 kod çalısıyor if e giriyor kontrol ediliyor
2 kontrolde eşitlik yoksa else kısmındaki kod çalısıyor
3 o kısındada dikkatimi çeken mesaj veriliyor hemde datetimepickerin rengi deişiyor yani change oluyor
4 yani kodun tamamlandıktan sonra tekrar çalışıyor fakat bu sefer tekrar aynı renge boyadığın için change olmuyor
ve böylece 2 kere tıklıyorsun tahminim böyle :):) bu kodu bir butonun clickine yaz mesela ozaman sorun olmaz heralde
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Application.MessageBox(...) mesajı tekrarlıyor!

Mesaj gönderen aslangeri »

s.a.
ibdatasetin scroll olayında bir işlem yapıyormusunuz?
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
muratn
Üye
Mesajlar: 4
Kayıt: 13 Eyl 2010 01:42

Re: Application.MessageBox(...) mesajı tekrarlıyor!

Mesaj gönderen muratn »

aslangeri yazdı:s.a.
ibdatasetin scroll olayında bir işlem yapıyormusunuz?
a.s.

Hayır işlem yaptırmıyorum.
Code_Monster
Üye
Mesajlar: 16
Kayıt: 09 Tem 2010 10:36

Re: Application.MessageBox(...) mesajı tekrarlıyor!

Mesaj gönderen Code_Monster »

dediğim gibi change olayı ikikere işliyor ama bunun senin kodunla bir ilgisi yok düzeltmek için deişik bişey denedim bi bak istersen uyarla bunu


procedure TForm1.DateTimePicker1Change(Sender: TObject);
//////////
{$J+}
const
a:boolean=true;
//////////
begin
if 2 = 3 then
begin
DateTimePicker1.Color := clLime;
end
else
begin
////////////////////////////
if a then begin
DateTimePicker1.Color := clWhite;
Application.MessageBox('Seçtiğiniz tarihte kayıt bulunamadı.','Uyarı', MB_OK or MB_ICONINFORMATION);
a:=false;
end
else a:=true;
////////////////////////////

end;
end;
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Application.MessageBox(...) mesajı tekrarlıyor!

Mesaj gönderen aslangeri »

s.a.
onchange yerine onclick eventinı da kullanabilirsin. ama onda eliyle tarihi değiştirirse yakalamıyor.
kodda gelen tarihi kontrol ettirebilirsin. eğer tarih aynı ise işlem yaptırmazsın.
şöle bişi yani.

Kod: Tümünü seç

var
temp:string;
Begin
  temp:=DateToStr(DateTimePicker1.Date);
if temp=GELEN_TARIH Then exit;
 GELEN_TARIH := temp;
  IBDataSet_GELENHAMMADDE.Locate('GELEN_TARIH', GELEN_TARIH,[]);
  ...........
end;
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
muratn
Üye
Mesajlar: 4
Kayıt: 13 Eyl 2010 01:42

Re: Application.MessageBox(...) mesajı tekrarlıyor!

Mesaj gönderen muratn »

Hepinize çok teşekkür ederim arkadaşlar, bir arkadaşımın yardımıyla hallettim. Dediğiniz gibi kodumda bir sorun yok. Emindim doğru olduğuna ama istediğim sonucu alamayınca başıma ağrılar girdi, başka bir açıdan düşünemedim. Kodu hiç değiştirmeden "DateTimePicker1" 'in "OnCloseUp" olayına yazdım. Tam istediğim gibi oldu. Tekrar teşekkürler.
Cevapla