html dekine benze Combobox
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
html dekine benze Combobox
Merhaba,
html yazarken <selectted value="tr">TÜRKİYE</selected> gibi combobox oluşturuyoruyoruz ve kullanıcı TÜRKİYE olarak görüyor fakat değer TR olarak gönderiliyor.
Delphide buna benzer birşey yapmak istiyorum. Stringlistlerle falan idare ediyoruz ama zor oluyor. Jedi de kurdum ama bulamadım böyle bir component varmı? Mümkünse data combonent???
Şimdiden Çoook teşekkürler
html yazarken <selectted value="tr">TÜRKİYE</selected> gibi combobox oluşturuyoruyoruz ve kullanıcı TÜRKİYE olarak görüyor fakat değer TR olarak gönderiliyor.
Delphide buna benzer birşey yapmak istiyorum. Stringlistlerle falan idare ediyoruz ama zor oluyor. Jedi de kurdum ama bulamadım böyle bir component varmı? Mümkünse data combonent???
Şimdiden Çoook teşekkürler
Re: html dekine benze Combobox
delphinin standart combobox nesnesiyle bunu yapabilirsiniz,
delphi combobox add object olarak arayın, örnek olarak şuna bakabilirsiniz
delphi combobox add object olarak arayın, örnek olarak şuna bakabilirsiniz
bazen yükselmek için önce dibi görmek gerekir...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...
forumda soru sormadan önce bakılmalı bence
daha fazlası için...
yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...
Re: html dekine benze Combobox
Doğru ve pratik kullanımı @unicorn64 önerdiği şekildedir.
Alternatif olarak Object olayına aşina değilseniz, combobox sayınız sayıca az ise her birine ikinci bir liste içeren kutu (örneğin ComboBox1'e karşlılık Visible özelliği FALSE olan bir LitstBox1, ComboBox2'ye karşılık Visible özelliği FALSE olan bir ListBox2 şeklinde) ayna listeler kurabilirsiniz.
ComboBox1'in içinda sırasıyla Türkiye, Almanya, İtalya varken onun ayna listesi olacak olan ListBox1'de TR, DE, IT olacak.
Örneğin ComboBox1'in onChange olayında yapılacak işlem aşağıdaki gibi olacaktır.
Bilmem ifade edebildim mi ...
Alternatif olarak Object olayına aşina değilseniz, combobox sayınız sayıca az ise her birine ikinci bir liste içeren kutu (örneğin ComboBox1'e karşlılık Visible özelliği FALSE olan bir LitstBox1, ComboBox2'ye karşılık Visible özelliği FALSE olan bir ListBox2 şeklinde) ayna listeler kurabilirsiniz.
ComboBox1'in içinda sırasıyla Türkiye, Almanya, İtalya varken onun ayna listesi olacak olan ListBox1'de TR, DE, IT olacak.
Örneğin ComboBox1'in onChange olayında yapılacak işlem aşağıdaki gibi olacaktır.
Kod: Tümünü seç
strUlkeKodu := ListBox1.Items[ ComboBox1.ItemIndex ];
Re: html dekine benze Combobox
Selam, kendimce 3 fonksiyon yazıp db den verileri alıp combo ya basan, db de ilgili kayda konumlanan, gerektiğinde kayıt numarasını dışarıya çıkartma işlemlerini yaptırmıştım,
kullanımı;
Mesela döviz türlerinin olduğu bir combobox ı doldurmak için;
COMBODOLDUR('SELECT KOD, KISALTMA FROM DOVIZ ORDER BY KOD',DOVIZ_KODU); // DOVIZ_KODU combobox
Doldurulmuş olan combobox taki mesela id si 2 olan USD kurunun seçili olmasını istiyorsam
COMBOSEC(DOVIZ_KODU,2); // 2 id li dovize konumlanır
DOVIZ_KODU combobox unda hangi id li döviz seçili onu almak için
id:=COMBOVER(DOVIZ_KODU);
şeklinde kullanabilirsiniz.
Kod: Tümünü seç
Procedure COMBODOLDUR( SORGU:STRING; COMBO:TComboBox );
begin
TRY
data.QSORGU.Close; // data modulde boş bir QSORGU querysi bulunduruyorum mesela "Select kod, adi from doviz" gibi sorgu gönderiyorum.
data.QSORGU.SQL.Clear;
data.QSORGU.SQL.Add(SORGU);
data.QSORGU.Open;
data.QSORGU.FetchAll;
data.QSORGU.FieldDefs.Update;
(COMBO AS TComboBox).Items.Clear;
data.QSORGU.First;
WHILE NOT DATA.QSORGU.Eof DO BEGIN // DONGU
with (COMBO AS TComboBox).Items do Objects[Add(DATA.QSORGU.Fields[1].AsString)] := TObject(DATA.QSORGU.Fields[0].AsInteger);
DATA.QSORGU.Next;
END; // DONGU
// yukarıda VT deki verileri kod ve adı şeklinde combobox a basıyor
data.QSORGU.Close;
EXCEPT
on E: Exception do begin
MessageDlg('DİKKAT...!'+#13+(COMBO AS TComboBox).Name+' ComboBox Yükleme Hatası Oluştu'+#13+E.ClassName + #13 + E.Message, mtInformation, [mbOK], 0);
end;
END;
end;
// aşağıdaki procedure ise, mesela combobox vt den id si kaç olan kayda konumlansın onu gönderiyorsunuz
Procedure COMBOSEC( COMBO:TComboBox; ID:LongInt );
var
SKOD,X:INTEGER;
begin
TRY
FOR X:=0 TO (COMBO AS TComboBox).Items.Count-1 DO BEGIN
(COMBO AS TComboBox).ItemIndex:=X;
with (COMBO AS TComboBox) do SKOD:=LongInt(Items.Objects[ ItemIndex ]);
IF SKOD=ID THEN Break;
END;
EXCEPT
on E: Exception do begin
MessageDlg('DİKKAT...!'+#13+(COMBO AS TComboBox).Name+' ComboBox Seçim Hatası Oluştu'+#13+E.ClassName + #13 + E.Message, mtInformation, [mbOK], 0);
end;
END;
end;
// aşağıda ise seçtiğiniz combobox taki seçili olan alanın id sini veriyor.
function COMBOVER( COMBO:TComboBox ):INTEGER;
begin
TRY
IF (COMBO AS TComboBox).Visible=TRUE THEN
with (COMBO AS TComboBox) do RESULT:=LongInt(Items.Objects[ ItemIndex ])
ELSE RESULT:=-1;
EXCEPT
on E: Exception do begin
RESULT:=-1;
MessageDlg('DİKKAT...!'+#13+(COMBO AS TComboBox).Name+' ComboBox Geri Dönüşüm Hatası Oluştu'+#13+E.ClassName + #13 + E.Message, mtInformation, [mbOK], 0);
end;
END;
end;
Mesela döviz türlerinin olduğu bir combobox ı doldurmak için;
COMBODOLDUR('SELECT KOD, KISALTMA FROM DOVIZ ORDER BY KOD',DOVIZ_KODU); // DOVIZ_KODU combobox
Doldurulmuş olan combobox taki mesela id si 2 olan USD kurunun seçili olmasını istiyorsam
COMBOSEC(DOVIZ_KODU,2); // 2 id li dovize konumlanır
DOVIZ_KODU combobox unda hangi id li döviz seçili onu almak için
id:=COMBOVER(DOVIZ_KODU);
şeklinde kullanabilirsiniz.
Re: html dekine benze Combobox
Çok tşekkür ederim sizinkilere benze bir yöntemde ben geliştirmiştim zaten ama kombolar artınca dedim acaba visial basicdeki gibi birde ekstadan dataitems özelliği olan bir kontrol varmı diye yok galiba
Re: html dekine benze Combobox
DBLookUpComboBox var onuda inceleyebilirsiniz.
Re: html dekine benze Combobox
Standart DBComboboxa Value propertysi ekleyip bu value yede istediğin bir kolonu TFieldDataLink ile set edebilirsin.
Re: html dekine benze Combobox
Aklıma geldi de, ekranda bu kodların görünmesi sıkıntı olur mu ? Mesela "Türkiye (TR)" "Almanya (DE)" şeklinde görünmesinde sıkıntı yoksa böyle giriş yapın, sonra OnChange olayında parantez içini parse edin.
Örneğin :
Örneğin :
Kod: Tümünü seç
procedure TForm1.ComboBox1Change(Sender: TObject);
Var
strKod : String;
begin
strKod := ComboBox1.Text;
System.Delete (strKod, 1, Pos('(', strKod) );
strKod := Copy(strKod, 1, Pos(')', strKod)-1 );
ShowMessage(strKod);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
With ComboBox1 do begin
Style := csDropDownList;
Items.Add('Türkiye (TR)' );
Items.Add('Almanya (DE)' );
Items.Add('Italya (IT)' );
Items.Add('Hollanda (NE)');
ItemIndex := 0;
end;
end;