Comboboxa ItemIndex ve OnClick Yaptırma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
dogan
Üye
Mesajlar: 173
Kayıt: 17 Eki 2014 10:11

Comboboxa ItemIndex ve OnClick Yaptırma

Mesaj gönderen dogan »

Selam,

Birden fazla Combobox kontrol sırasında aynı anda hem ItemIndex ve OnClick işlem yaptıramıyorum bu durumu nasıl çözebilirim?.

Örnek: Combobox1 de ItemIndex değerini 0 seçtirdikten sonra onclick işlemi de peşi sıra işleyecek...


Kod: Tümünü seç

procedure TForm4.GenelComboboxClick(Sender: TObject);
begin
  Case GenelCombobox.ItemIndex of
    0:
      begin
        Combobox1.ItemIndex := 0;
        Combobox2.ItemIndex := 0;
        Combobox3.ItemIndex := 0;
        Combobox4.ItemIndex := 0;
        Combobox1.OnClick(Combobox1);
        Combobox2.OnClick(Combobox2);
        Combobox3.OnClick(Combobox3);
        Combobox4.OnClick(Combobox4);
      end;
    1:
      begin
        Combobox1.ItemIndex := 1;
        Combobox2.ItemIndex := 1;
        Combobox3.ItemIndex := 1;
        Combobox4.ItemIndex := 1;
        Combobox1.OnClick(Combobox1);
        Combobox2.OnClick(Combobox2);
        Combobox3.OnClick(Combobox3);
        Combobox4.OnClick(Combobox4);
      end;
  end;
end;
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Comboboxa ItemIndex ve OnClick Yaptırma

Mesaj gönderen mrmarman »

OnChange olayını kullanmayı tercih edersen istediğin daha kolay olur.
Ayrıca diğer ComboBox'larda değişiklik olunca de aynı mimiği uygulasın istersen aşağıdaki şekilde kurgulaman yeterli.

(1) Öncelikle GenelComboBox'unun OnChange olayını aşağıdaki şekilde düzenle

Kod: Tümünü seç

procedure TForm1.GenelComboboxChange(Sender: TObject);
begin
  GenelComboBox.ItemIndex := TComboBox(Sender).ItemIndex;
  ComboBox1.ItemIndex := TComboBox(Sender).ItemIndex;
  ComboBox2.ItemIndex := TComboBox(Sender).ItemIndex;
  ComboBox3.ItemIndex := TComboBox(Sender).ItemIndex;
  ComboBox4.ItemIndex := TComboBox(Sender).ItemIndex;
end;
(2) Sonra da ComboBox1, 2, 3 ve 4'ün OnChange eventine hiçbir kod yazmadan, açılır listesinden GenelComboBoxChange göreceksin onu seç.

Arkana yaslan ve neler olduğuna bak. Hangi combobox'u oyanrsan oyna diğerleri otomatik olarak aynı itemindex'e dönüşecektir. :idea:
Resim
Resim ....Resim
Kullanıcı avatarı
dogan
Üye
Mesajlar: 173
Kayıt: 17 Eki 2014 10:11

Re: Comboboxa ItemIndex ve OnClick Yaptırma

Mesaj gönderen dogan »

mrmarman yazdı:OnChange olayını kullanmayı tercih edersen istediğin daha kolay olur.
Ayrıca diğer ComboBox'larda değişiklik olunca de aynı mimiği uygulasın istersen aşağıdaki şekilde kurgulaman yeterli.

(1) Öncelikle GenelComboBox'unun OnChange olayını aşağıdaki şekilde düzenle

Kod: Tümünü seç

procedure TForm1.GenelComboboxChange(Sender: TObject);
begin
  GenelComboBox.ItemIndex := TComboBox(Sender).ItemIndex;
  ComboBox1.ItemIndex := TComboBox(Sender).ItemIndex;
  ComboBox2.ItemIndex := TComboBox(Sender).ItemIndex;
  ComboBox3.ItemIndex := TComboBox(Sender).ItemIndex;
  ComboBox4.ItemIndex := TComboBox(Sender).ItemIndex;
end;
(2) Sonra da ComboBox1, 2, 3 ve 4'ün OnChange eventine hiçbir kod yazmadan, açılır listesinden GenelComboBoxChange göreceksin onu seç.

Arkana yaslan ve neler olduğuna bak. Hangi combobox'u oyanrsan oyna diğerleri otomatik olarak aynı itemindex'e dönüşecektir. :idea:

Sn. Hocam; Genel Comboboxda yapılan değişiklik combobox 1,2,3'e uyguluyor, fakat her bir "combobox1,2,3" den ayrı, ayrı databaseden veri çekiyorum aynı anda click işlemi de tetiklenmeli...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Comboboxa ItemIndex ve OnClick Yaptırma

Mesaj gönderen mrmarman »

İşte OnClick işlemindeki yazdıklarını da OnChange olayına taşımak istemez misin ?! neyse ne yapmak istediğini anlamadım, onun yerine sana çoklu işlemleri procedure altına almayı tavsiye ederek tercihi sana bırakayım... Gerçi aslında pek de farklı bir şey yapmış olmuyorum ama tümüyle OnClick olayını ayırmak ile ne yaptığını anlamadığımdan böyle yazıyorum.

Kod: Tümünü seç

procedure TForm1.CombolariClick( idx:Integer );
begin
  ComboBox1.ItemIndex := idx;
  ComboBox1Click(ComboBox1);
  ComboBox2.ItemIndex := idx;
  ComboBox2Click(ComboBox2);
  ComboBox3.ItemIndex := idx;
  ComboBox3Click(ComboBox3);
  ComboBox4.ItemIndex := idx;
  ComboBox4Click(ComboBox4);
end;
Kullanımı da dilediğin yerde tek bir satır kod yazıp

Kod: Tümünü seç

procedure TForm1.ComboBoxGenelClick(Sender: TObject);
begin
  CombolariClick( ComboBoxGenel.ItemIndex );
end;
veya

Kod: Tümünü seç

  CombolariClick( 3 );
şeklinde yazarsan her iki işi de görecektir.
Resim
Resim ....Resim
Cevapla