listview caption renklendirme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kayipgemi
Üye
Mesajlar: 88
Kayıt: 14 Kas 2005 03:07

listview caption renklendirme

Mesaj gönderen kayipgemi »

arkadaşlar herkese kolay gelsi bir sorum olacak bakabilirseniz..

Kod: Tümünü seç

 var
 xitem : TListItem;

while not dm.masa.eof do
begin
xitem := masalar.Items.Add;
xitem.Caption :=  dm.masaMASANO.AsString;
dm.masa.next;
end;

bu kod ile vt deki bilgileri listview içerisine alabiliyorum yapmak istediğim
bu kodun içerisine şöyle bir şey eklemek istiyorum.

if dm.masaDURUM.AsString ='' then // listview e eklenen o itemsin caption un kırmızı olması
else
captionun black olması

şimdiden teşekkürler
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Örnek bir kod hazırladım. Bu sayede kavram olarak daha kolay anlamanı hedefledim.

- Eklediğin her item için veritabanından aldığın değerleri yansıtıyorsun. Bu senin yazdığın örnek.

- Burada bilmen gereken şey, bir item'e direkt şu renk ol diyemeyeceğindir. Yapman gereken şey, rengi değişik görünmesi gereken item'i diğerlerinden farklılaştırmak olmalıdır. Şöyle ki.

- Ben item'in Checked özelliğini ele aldım. Sen başka çözümler bulabilirsin. İçeriği belli bir değeri alan item'in Checked özelliğini True yapar, diğerlerini False yaparsak bu bize daha sonra kullanmak üzere dayanak noktası sağlar.

Kod: Tümünü seç

var
  Sayac : Integer;
  xitem : TListItem;
begin
  For Sayac := 0 to 10 do
  begin
    xitem := ListView1.Items.Add;
    xitem.Caption := Format('%.3d', [Sayac]);
    If Sayac = 5 // 5 olan item'i Checked = True yaptık. Diğerleri False
      then xitem.Checked := True
      else xitem.Checked := False;
  end;
end;
- Aşağıdaki kod, her item için içerik durumuna göre dilediğin işlemi yapmaya yeterlidir.

Kod: Tümünü seç

procedure TForm1.ListView1AdvancedCustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage;
  var DefaultDraw: Boolean);
begin
  If Item.Checked then TListView(Sender).Canvas.Font.Color := clRed;
end;
- Gördüğün üzere, hangi item'in Checked'i True ise onlar kırmızı renkli görünecektir.

- Başarılar.
Resim
Resim ....Resim
kayipgemi
Üye
Mesajlar: 88
Kayıt: 14 Kas 2005 03:07

Mesaj gönderen kayipgemi »

teşekkür ederim emeğine, yüreğine, ellerine sağlık kardeşim işe yaradı ...
Allah Kolaylık versin sağolasın.
Cevapla