Checkbox çift işlem

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Checkbox çift işlem

Mesaj gönderen White Rose »

S.A. Hayırlı Cumalar

Arkadaşlar Formun OnShow olayında Checkbox nesnesine true yada false değer atıyorum.
Bu nesnenin bir de OnClick olayı var ve burda bir takım işlemler yapılıyor.

Form açıldığında bu nesneye değer atandığından(true/false) direk clikleme olayı meydana geliyor ve burdaki işlemler çalışıyor. Halbu ki ben sadece o nesneyi clikleyince işlem yapmasını istiyorum. Değer atadığımda cliklenme eventi çalışmasın. Aynı olay RadioGroup içinde geçerli

Bunu nasıl engellerim.
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Checkbox çift işlem

Mesaj gönderen Lord_Ares »

tam anlaşılmadı ama , sanırım true değerini yanlış atıyorsun. formun onshowunda değilde checkboxun onclik kısmında şöyle yazmalısın

Kod: Tümünü seç

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked=true then begin
    ShowMessage('true');
end;
if CheckBox1.Checked=false then begin
    ShowMessage('false');
end;
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Re: Checkbox çift işlem

Mesaj gönderen White Rose »

şöyle anlatayım o zaman

procedure TForm11.FormShow(Sender: TObject);
begin
Chb_GenSts.Checked:=True;
end;
.
.
procedure TForm1.Chb_GenStsClick(Sender: TObject);
begin
Islemler;
end;

Form açıldığında yani formun Show olayında Islemler procedure çalışıyor, bunun olmasını istemiyorum
omurolmez
Üye
Mesajlar: 187
Kayıt: 31 Eki 2012 11:41

Re: Checkbox çift işlem

Mesaj gönderen omurolmez »

Bu durumu engelleyemezsiniz.
a. Tasarımınızı buna göre değiştirebilirsiniz.
b. checked atamasından önce OnClick olayını geçici olarak kaldırabilirsiniz :
CheckBox1.OnClick :=nil;
CheckBox1.Checked :=true;
CheckBox1.OnClick :=CheckBox1OnClick;
Ömür Ölmez
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Checkbox çift işlem

Mesaj gönderen mrmarman »

Merhaba.

- Ben şöyle bir metod uyguluyorum. Programa bir global değişken koyun.

- (bu kısım ilgilenene) Kendimce global değişkenlerin başında her zaman x harfi koyuyorum, özel bir nedeni yok, bana bu konuda algı kolaylığı sağlıyor. Değişkenin başında x varsa benim için Global değişken anlamına geliyor, projenin her yerinden bu değişkene değer atayabilir ve içeriğini kontrol edebilirim. Büyük projelerde başka unitlerdeki global değişkenleri de bu şekilde ayırt ederek anlayabiliyorum.

Kod: Tümünü seç

Var
  xKontrolBende : Booolean = False;
CheckBoxOnClick eventinin begin den sonraki ilk satıra aşağıdaki şekilde ekleyin.

Kod: Tümünü seç

if xKontrolBende then Exit;
Siz FormCreate veya başka yer CheckBox'a Checked := True demeden önce şöyle yapın.

Kod: Tümünü seç

xKontrolBende := True;
  CheckBox1.Checked := true;
xKontrolBende := False;
Aynı projede bunu RadioGroup için de sorunsuzca uygularsınız.

Bu yöntem hiç şaşmadı. Umarım beğenirsiniz, işinizi görür.
Başarılar.
Resim
Resim ....Resim
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Re: Checkbox çift işlem

Mesaj gönderen White Rose »

Çok teşekkür ederim arkadaşlar...

mrmarman global değişken mantığı çok güzel.
Cevapla