combobox kontrol

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
elzembilgi
Üye
Mesajlar: 20
Kayıt: 13 Tem 2008 06:32

combobox kontrol

Mesaj gönderen elzembilgi »

S.a arkadaslar combobox secilen itemi tekrar sememize izin vermeyecek yani ayni secenegi ust uste secemyecegiz her seferinde farklı sece bilcez bunu nasil yapariz
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: combobox kontrol

Mesaj gönderen G.Arkas »

Seçilen satırı yada öğeyi nereye atıyorsun? Bir liste kontrolüne atıyorsan bir döngü ile listesi tarayıp daha önce girilen kayıtları alıp seçilen ile karşılaştırabilirsin.

ComboBox OnChange olayına;

Kod: Tümünü seç

var
i:Integer;
sList, TempList: String;
begin
for I := 0 to ListBox1.Items.Count - 1 do
 begin
 sList:= ComboBox1.Text;
  if sList = ListBox1.Items[i] then
     begin
      ShowMessage('Listede aynı eleman var!');
     exit;
     end

end;
      ListBox1.Items.Add(sList);
end;

Kendine göre düzenleyebilirsin.
Resim
elzembilgi
Üye
Mesajlar: 20
Kayıt: 13 Tem 2008 06:32

Re: combobox kontrol

Mesaj gönderen elzembilgi »

ben combobox ile şöyle birşey yapmak istiyorum comboboxda şunlar var "kdv dahil" ve "kdv hariç" kullanıcı kdv dahili seçdiğinde işlemleri yaptırıyorum ama kullanıcı tekrar kdv dahili seçerse olmuyor şöyle olmasını istiyorum bir kdv dahil seçilsin bir kdv hariç secilsin kdv dahil seçildiğinde kdv hariç aktif olsun kdv hariç seçildiğinde kdv dahil aktif olsun bilmem anlatabildim biraz zor ama
bkantur
Üye
Mesajlar: 47
Kayıt: 23 Kas 2013 04:45
Konum: Balıkesir

Re: combobox kontrol

Mesaj gönderen bkantur »

Benim anladığım kadarıyla bu şekilde bir kodlama istiyorsun. Burada sadece senin istediğin gibi pasif olmuyor ama combo değiştiği zaman amacına ulaşabilirsin.

Kod: Tümünü seç

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  if ComboBox1.Text = 'Kdv Dahil' then
     begin
	     showmessage('Kdv Dahil Seçili');
       //Kdv dahil iken yapılacak işlemler
     end
  else if ComboBox1.Text = 'Kdv Hariç' then
     begin
       showmessage('Kdv Hariç Seçili');
       //Kdv hariç iken yapılacak işlemler
     end;
end;
elzembilgi
Üye
Mesajlar: 20
Kayıt: 13 Tem 2008 06:32

Re: combobox kontrol

Mesaj gönderen elzembilgi »

kantur arkadaşım ilgine tşk ama istediğim tam böyle değil çünkü kullanıcı üst üste kdv dahili seçerse hesaplamalar şaşıyor mesala 100 tl kdv dahil seçilirse 84,74 oluyor kdv hariç seçilirse 118 oluyor diyelimki kullanıcı ikikere kdv dahili seçerse 100 -> 84,74 -> 71,81 bu böyle gidiyor ben böyle istemiyorum kullanıcı fiyat 100 ken kdv dahili seçerse 84,74 oldu diyelim artık kdv dahil kodları çalışmayacak ama kdv hariçi seçebilir kdv hariçi seçince ne olçak 84,74 tekrar 100 olçak şimdi kdv hariç pasif olçak kdv dahil seçilir olçak inşallah anlata bilmişimdir.
bkantur
Üye
Mesajlar: 47
Kayıt: 23 Kas 2013 04:45
Konum: Balıkesir

Re: combobox kontrol

Mesaj gönderen bkantur »

Acemice bir cevap olabilir biraz kodlar uzadı ama. Değerli Hocalarımız ve Ustalarımızın belki farklı çözüm önerileri olabilir.

Kod: Tümünü seç

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  if ComboBox1.Text = 'Kdv Dahil' then
     begin
        showmessage('Kdv Dahil Seçili');
        Label1.Caption := FloatToStr(StrToInt(Label1.Caption) / 1.18);
        ComboBox1.Items.Clear;
        ComboBox1.Items.Add('Kdv Hariç')
       //Kdv dahil iken yapılacak işlemler
     end
  else if ComboBox1.Text = 'Kdv Hariç' then
     begin
       showmessage('Kdv Hariç Seçili');
       Label1.Caption := FloatToStr(StrToInt(Label1.Caption) * 1.18);
       ComboBox1.Items.Clear;
       ComboBox1.Items.Add('Kdv Dahil')
       //Kdv hariç iken yapılacak işlemler
     end;
end;
elzembilgi
Üye
Mesajlar: 20
Kayıt: 13 Tem 2008 06:32

Re: combobox kontrol

Mesaj gönderen elzembilgi »

kantur kardeşim cevabın için tşk istediğim tam böyle birşey ama daha prf. kod bulana kadar böyle idare ederim combobox item leri silmeden yapabilsek çok daha güzel olçak
elzembilgi
Üye
Mesajlar: 20
Kayıt: 13 Tem 2008 06:32

Re: combobox kontrol

Mesaj gönderen elzembilgi »

kantur kardeşim senin verdiğin örnekten fikir alarak şöyle birşey buldum belki arkadaşlara lazım olur diye paylaşmak istedim herşey için tşk ederim

procedure SetDisabledItem(AComboBox: TComboBox; AIndex: Integer; AValue: Boolean);
begin
if not Assigned(AComboBox) then Exit;
if AIndex < AComboBox.Items.Count then begin
if AValue then begin
if Integer(AComboBox.Items.Objects[AIndex]) = 0 then begin
if AIndex = AComboBox.ItemIndex then
AComboBox.Tag := -1;
AComboBox.Items.Objects[AIndex] := Pointer(1);
AComboBox.Items[AIndex] := '['+AComboBox.Items[AIndex]+']';
end;
end else begin
if Integer(AComboBox.Items.Objects[AIndex]) <> 0 then begin
AComboBox.Items.Objects[AIndex] := nil;
AComboBox.Items[AIndex] := Copy(AComboBox.Items[AIndex], 2, Length(AComboBox.Items[AIndex])-2);
end;
end;
end;
end;

procedure TForm2.ComboBox1Change(Sender: TObject);
begin
with TComboBox(Sender) do
begin
if Integer(Items.Objects[ItemIndex]) <> 0 then begin
ItemIndex := Tag;
end else
begin
Tag := ItemIndex;
end;
end;
//
if ComboBox1.tag = 0 then
begin
Label1.Caption := FloatToStr(StrToFloat(Label1.Caption) / 1.18);
SetDisabledItem(ComboBox1,0,True);
SetDisabledItem(ComboBox1,1,False);
end
else if ComboBox1.tag = 1 then
begin
Label1.Caption := FloatToStr(StrToFloat(Label1.Caption) * 1.18);
SetDisabledItem(ComboBox1,1,True);
SetDisabledItem(ComboBox1,0,False);
end;

end;
bkantur
Üye
Mesajlar: 47
Kayıt: 23 Kas 2013 04:45
Konum: Balıkesir

Re: combobox kontrol

Mesaj gönderen bkantur »

Yardımcı olabildiysem ne mutlu
Kullanıcı avatarı
esistem
Üye
Mesajlar: 464
Kayıt: 02 Eki 2007 11:22
İletişim:

Re: combobox kontrol

Mesaj gönderen esistem »

Selam;
Bu olayı nerde kullanıyosun bilmiyorum ama benim aklıma direk fatura girişi gibi bişi geldi. Mesela ben kullanıyorum programı diyelim, birim fiyat 100 tl yazdım, kdv 18 yazdım, kdv dahil i seçtim, ama sonra yanlış yaptığımı anladım, baktım kdv hariç seçilmiyo, formu yenileyip tutarı yeniden yazıp bu seferde kdv hariç mi seçmem gerekiyor?
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: combobox kontrol

Mesaj gönderen thelvaci »

TRadioGroup istiyormuşsunuz gibi bir hisse kapıldım.
Cevapla