cxgrid satır renklendirme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- ozlemsaltan
- Üye
- Mesajlar: 38
- Kayıt: 01 Nis 2014 05:57
cxgrid satır renklendirme
Arkadaşlar kolay gelsin,
Cxgridim de koşula bağlı olarak sütunlarım doluyor. örneğin a sütunun da isimler var. Ayşe,Fatma,Ahmet,Veli,Mehmet gibi. Şimdi benim yapmak istediğim şu:
Sütun A
Ayşe,Fatma,Mehmet
Ayşe,Veli,Ahmet
Ahmet,Ayşe
Veli,Fatma,Ahmet
..
..
..
şeklinde düşünelim. Bu sütunda ki İçerisin de Ayşe geçen tüm satırların sarı renge boyanmasını istiyorum.
Nasıl yapabilirim yardımcı olursanız çok sevinirim.
Cxgridim de koşula bağlı olarak sütunlarım doluyor. örneğin a sütunun da isimler var. Ayşe,Fatma,Ahmet,Veli,Mehmet gibi. Şimdi benim yapmak istediğim şu:
Sütun A
Ayşe,Fatma,Mehmet
Ayşe,Veli,Ahmet
Ahmet,Ayşe
Veli,Fatma,Ahmet
..
..
..
şeklinde düşünelim. Bu sütunda ki İçerisin de Ayşe geçen tüm satırların sarı renge boyanmasını istiyorum.
Nasıl yapabilirim yardımcı olursanız çok sevinirim.
Çaylak yazılımcı:)
-
- Üye
- Mesajlar: 189
- Kayıt: 30 Eyl 2013 10:17
Re: cxgrid satır renklendirme
Gridin CustomDrawCell olayinda asagidaki gibi bir kodla kosullu renklenlendirme yapabilirsiniz diye dusunuyorum. (not: test etmedim sadece fikir versin diye yazdim.)
Kod: Tümünü seç
with tabloadi,(Sender as TcxCustomGridTableView) do
begin
if pos('Ayse',tabloadi.fieldByName('alanadi').asString)) > 0 then
begin
ACanvas.Brush.Color:= clred;
ACanvas.Font.Color:= clBlack;
end;
end;
Re: cxgrid satır renklendirme
Selam,
aşağıdaki linkteki @emin_as arkadaşın verdiği örnekteki integer koşulu @mehmetantalya arkadaşımızın verdiği "pos" ile uygularsanız işinizi çözecektir.
http://delphiturkiye.com/forum/viewtopi ... me#p143179
aşağıdaki linkteki @emin_as arkadaşın verdiği örnekteki integer koşulu @mehmetantalya arkadaşımızın verdiği "pos" ile uygularsanız işinizi çözecektir.
http://delphiturkiye.com/forum/viewtopi ... me#p143179
- ozlemsaltan
- Üye
- Mesajlar: 38
- Kayıt: 01 Nis 2014 05:57
Re: cxgrid satır renklendirme
TFRM_MusteriAra.DBG_MusteriAraDBTableView1CustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
if pos('AYŞE',ZQ_MusteriAra.fieldByName('calisanlar2').asString) > 0 then
begin
ACanvas.Font.Color := clBlack;
ACanvas.Font.Style := [fsBold];
ACanvas.Brush.Color := clRed;
end;
hepsi kırmızı oldu..
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
if pos('AYŞE',ZQ_MusteriAra.fieldByName('calisanlar2').asString) > 0 then
begin
ACanvas.Font.Color := clBlack;
ACanvas.Font.Style := [fsBold];
ACanvas.Brush.Color := clRed;
end;
hepsi kırmızı oldu..
Çaylak yazılımcı:)
Re: cxgrid satır renklendirme
begin ve end var ama else nerede ?durum buysa kırmızı yap değilse eski rengine döndür mesela (ACanvas.Brush.Color := clWhite;) demeniz gerekli.
- ozlemsaltan
- Üye
- Mesajlar: 38
- Kayıt: 01 Nis 2014 05:57
Re: cxgrid satır renklendirme
herkese teşekkürler sorun şu şekilde çözülmüştür.
if pos('ayşe',AViewInfo.GridRecord.Values[12]) >0 then
begin
ACanvas.Font.Color := clBlack;
ACanvas.Font.Style := [fsBold];
ACanvas.Brush.Color := $004080FF
end;
if pos('ayşe',AViewInfo.GridRecord.Values[12]) >0 then
begin
ACanvas.Font.Color := clBlack;
ACanvas.Font.Style := [fsBold];
ACanvas.Brush.Color := $004080FF
end;
Çaylak yazılımcı:)
Re: cxgrid satır renklendirme
Merhaba,
Eğer kullanıcı database içine 'Ayşe', 'AYŞE', 'ayşe' gibi 3 farklı kayıt girer ise sizin kod ile sadece 'ayşe' olan kırmızı olacaktır. Büyük/küçük harf önemli ise sorun yok. Ancak sizin için 'aYşE' ile 'ayşe' aynı şey ise database değerini büyük veya küçük hale çevirerek kontrol etmeniz gerekecektir.
Eğer kullanıcı database içine 'Ayşe', 'AYŞE', 'ayşe' gibi 3 farklı kayıt girer ise sizin kod ile sadece 'ayşe' olan kırmızı olacaktır. Büyük/küçük harf önemli ise sorun yok. Ancak sizin için 'aYşE' ile 'ayşe' aynı şey ise database değerini büyük veya küçük hale çevirerek kontrol etmeniz gerekecektir.
Re: cxgrid satır renklendirme
Bir veri alanının (field, sütun) içeriğine göre bir veri satırını renklendirmenin resmi yolu View'ın GetContentStyle olayını kullanmaktır. Öncelikle forma bir adet TcxStyleRepository bileşeni sürükleyin. Bu bileşeni çift tıklayıp kullanmak istediğiniz style (renk grubu, görüntü şekli) leri oluşturun. Sonra GetContentStyle içerisinde field değerine göre bu style lerden birini seçin. Aşağıda kendi kullandığım koddan bir örnek yer almaktadır.
Kod: Tümünü seç
procedure TFormStokFisCustG.DBGridDBTableViewStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; var AStyle: TcxStyle);
var
AColumn: TcxCustomGridTableItem;
begin
inherited;
AColumn := (Sender as TcxGridDBTableView).GetColumnByFieldName('FIS_DURUM');
case StrToIntDef(VarToStr(ARecord.Values[AColumn.Index]),0) of
1: AStyle := cxStyleTaslak;
2: AStyle := cxStyleTekrarIncele;
3: AStyle := cxStyleOnayda;
4: AStyle := cxStyleOnayli;
5: AStyle := cxStyleOlumlu;
6: AStyle := cxStyleOlumsuz;
7: AStyle := cxStyleRevize;
8: AStyle := cxStyleIptal;
end;
end;
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)