DBlookup Combobox otomatik metin rengi

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
hasan.irgamaz
Üye
Mesajlar: 1
Kayıt: 10 Nis 2019 09:07

DBlookup Combobox otomatik metin rengi

Mesaj gönderen hasan.irgamaz » 26 Eyl 2019 09:05

Merhaba,

Delphi 10.2'de dblookup combobox kullanıyorum.
bir SQL query nin sonucundan bir alanı list source olarak kullanıyorum. List field alanında bulunan değerler comboboxta gösteriliyor.

Queryde RS isimli bir alanım mevcut ve 3 değer alabiliyor. Bu değere göre comboboxta gösterilen metinlerin rengini değiştirmek istiyorum.

0 ise yeşil
1 ise gri
2 ise kırmızı olacak şekilde

DBLookupcombox ta Ondraw özelliği yok. Combobox'ın liste değerleri oluşturulurken bu renklendirmeyi yapmak gerekiyor.

fakat bulamadım bir türlü.

Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 02:24
Konum: DelphiTürkiye.COM

Re: DBlookup Combobox otomatik metin rengi

Mesaj gönderen hi_selamlar » 16 Eki 2019 08:04

Merhabalar,

Umarım işinize yarar.
Kolay gelsin.

Kod: Tümünü seç

procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
const
        renk: Array [0 .. 9] of TColor = (clRed, clYellow, clGreen, clBlue,
          clFuchsia, clNavy, clMaroon, clMoneyGreen, clDkGray, clMenu);
var
        metin: string;
begin
        if Index > -1 then
                metin := ComboBox1.Items[Index]
        else metin := '';
        if metin <> '' then
        begin
                ComboBox1.Canvas.Font.Color := renk[index];
                ComboBox1.Canvas.Brush.Color := clWindow;
        end;
        ComboBox1.Canvas.TextRect(Rect, Rect.Left, Rect.Top, metin);
end;

Resim
Herkes cahildir, bazi konularda.

Cevapla