cx grid renklendirme hakkında

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
dabaddah
Üye
Mesajlar: 167
Kayıt: 13 Mar 2008 04:42
Konum: istanbul

cx grid renklendirme hakkında

Mesaj gönderen dabaddah »

arkadaşlar;

bu konu belki çok konuşuldu ama benim asıl öğrenmek istediğim cxgridin oncustodrawcell eventinin çalışma mantığını öğrenmek.
çünkü cx grid hakkaten çok farklı bir bileşen ve özellikleride gerçekten çok farklı bu gride alışmak uzun sürecek galiba :P

ayrıca cx gridde dosya_id diye bir alan var diyelimki 6 kaydın idsi aynı bir sonraki 4 kaydın idsi aynı bir sonraki 5 kaydın idsi aynı
ben istiyorumki idsi aynı olan 6 kaydı maviye boyasın bir sonraki 4 kaydı yeşile boyasın sonraki 5 kaydı tekrar maviye boyasın ve böyle devam etsin.

bu konu hakkında neler yapılabilir.

herkese iyi çalışmalar.
insanın özü tanımasına engel olan perdeleri;
1.kendini beden sanma
2.vehmî benlik
3.beş duyu blokajları
4.toplumsal şartlanmalar ve şartlanmaların oluşturduğu değer yargıları ve değer yargılarından gelen duygular
kişi bu perdelerden arınmadıkça göresel kozasında yaşar ve bir ipek böceği gibi kaynar kazana atılır.
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Re: cx grid renklendirme hakkında

Mesaj gönderen serkan »

selam madem aynı ID'de olanları aynı renge boyatmak istiyorsun,ve sadece 2 renk kullancaksın..o zaman tablona KALAN diye bir calculated field ekleyip mod fonksiyonuyla DOSYA_ID alanını 2 ye bölerek kalanı yazdır.böyle kalan 0 ise çift sayı,0'dan farklı ise tek sayı olur..Daha sonra cxgrridtable1view'in Getcontent style olayına aşağıdaki kodu eklersin..

Kod: Tümünü seç

var
  Acolumn:TcxCustomGridTableItem;
  Bcolumn:TcxCustomGridTableItem;
  begin
  AColumn := (Sender as TcxGridDBTableView).GetColumnByFieldName('KALAN');
  if VarToStr(ARecord.Values[AColumn.Index]) = '0'  then
  AStyle := Mavistl;
  BColumn := (Sender as TcxGridDBTableView).GetColumnByFieldName('KALAN');
  if VarToStr(ARecord.Values[BColumn.Index]) <> '0'  then
  AStyle := Yesilstl;
aslındaki yukardaki kod şarta göre satır renlendirme detayını formda bulabilirsin.Cevbım belki ID 'ye göre gruplatarak nasıl renklendirme yaparsın bunun fikrini verir..
Kullanıcı avatarı
dabaddah
Üye
Mesajlar: 167
Kayıt: 13 Mar 2008 04:42
Konum: istanbul

Re: cx grid renklendirme hakkında

Mesaj gönderen dabaddah »

sevgili serkan kardeşim ilgin ve cevabın için çok teşekkür ederim

söylediğin mantık aslında çok iyi ama kullanıcı bazı dosyaları sildiği için ard arda gelen bazı idler çift sayı dolayısıyla bölümden kalan ikisindede 0 olabiliyor yada 1 olabiliyor
bu durumdada renklendirme haliyle bozuluyor.
ayrıca bu kalan alan diye bir calculated alan oluşturdum ben fakat bu alanda hesaplama işlemi yaptırdığım zaman arama işlemi çok yavaşlıyor. sen nasıl yaptın acaba.

bu sorunlarla ilgili neler yapabiliriz

herkese iyi çalışmalar
insanın özü tanımasına engel olan perdeleri;
1.kendini beden sanma
2.vehmî benlik
3.beş duyu blokajları
4.toplumsal şartlanmalar ve şartlanmaların oluşturduğu değer yargıları ve değer yargılarından gelen duygular
kişi bu perdelerden arınmadıkça göresel kozasında yaşar ve bir ipek böceği gibi kaynar kazana atılır.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: cx grid renklendirme hakkında

Mesaj gönderen mrmarman »

Merhaba.

aşağıdaki şekilde Variable bir Const tanımlarsan işin görülecektir. Sistem basit, dosya_id alanının değerini const içine alıyorsun. Bu aynı olduğu sürece bStl adındaki boolean bayrağımız true veya false değer alacaktır. Her iki durumdan birisi mavi diğer yeşil stile göre değerlendirmek için tetikleme görevi üstlenecektir. $j direktifi alınan değeri son değer halinde local olarak tutacaktır/hatırlayacaktır.

Kod: Tümünü seç

Const
{$j+}
  sOncekiDeger : String = '-';
  bStl : Boolean = False;
{$j-}
begin
  if (dosya_id) <> sOncekiDeger then 
  begin
    sOncekiDeger := (dosya_id);
    bStl := NOT bStl;
  end;
  if bStl then AStyle := Mavistl else AStyle := Yesilstl;
end;
Resim
Resim ....Resim
Kullanıcı avatarı
dabaddah
Üye
Mesajlar: 167
Kayıt: 13 Mar 2008 04:42
Konum: istanbul

Re: cx grid renklendirme hakkında

Mesaj gönderen dabaddah »

sevgili mrmarman kardeşim ilgin ve cevabın için çok teşekkür ederim.

yaptığım deneme neticesinde değişkenin değeri sürekli olarak false oluyor.
dolayısıyla false stili ne ise grid baştan sona renge boyanıyor.

kodu hemde grdsearchDBTableView1 ongetcontentstyle eventinde denedim hemde CustomDrawCell eventinde denedim.

aslında verdiğin kod çok güzel bir önceki id ile sonraki farklıysa değeri değiştiriyor.

ama bir sonuç elde edemedim. bu konuyla ilgili neler yapabiliriz herkese iyi çalışmalar
insanın özü tanımasına engel olan perdeleri;
1.kendini beden sanma
2.vehmî benlik
3.beş duyu blokajları
4.toplumsal şartlanmalar ve şartlanmaların oluşturduğu değer yargıları ve değer yargılarından gelen duygular
kişi bu perdelerden arınmadıkça göresel kozasında yaşar ve bir ipek böceği gibi kaynar kazana atılır.
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: cx grid renklendirme hakkında

Mesaj gönderen orhancc »

cxgridin ilk satırından başlayıp en son satıra kadar değerleri döndüreceksin ve seçili değer ile önceki arasında fark varmı diye kontrol edeceksin. Aynıysa aynı renk farklıysa farklı renk yapacaksın. cxgrid yüklü olmadığı için kodu yazamıyorum ama mantık basit.
Kullanıcı avatarı
dabaddah
Üye
Mesajlar: 167
Kayıt: 13 Mar 2008 04:42
Konum: istanbul

Re: cx grid renklendirme hakkında

Mesaj gönderen dabaddah »

sevgili orhancc kardeşim ilgin ve cevabın için çok teşekkür ederim

yaptığım işi tam olarak söyliyeyim

sorgulamayı yaptıktan sonra query nesnesinin başından sonuna dönüp id farklıysa boolean değişkene değerini yazıyorum.
burada sorun yok burada debug ettiğim zaman her farklı id de değişken ters değerini alıyor.

ancak cx gridin ongetcontentstyle eventinde renklendirmeyi yaptığım için değişkenin son değeri kalıyor ve bütün grid tek renge boyanıyor.

döngüyü ongetcontentstyle eventinde yapsam program kitleniyor.

renklendirme döngüde zaten yapılamıyor.

sorunum böyle

herkese iyi çalışmalar
insanın özü tanımasına engel olan perdeleri;
1.kendini beden sanma
2.vehmî benlik
3.beş duyu blokajları
4.toplumsal şartlanmalar ve şartlanmaların oluşturduğu değer yargıları ve değer yargılarından gelen duygular
kişi bu perdelerden arınmadıkça göresel kozasında yaşar ve bir ipek böceği gibi kaynar kazana atılır.
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: cx grid renklendirme hakkında

Mesaj gönderen orhancc »

Belki yararı olur C# kodunu yazdım delphi de benzer şekilde olacak çünkü bu da devexpressin gridi

Kod: Tümünü seç

gridGuzergah.MoveFirst(); // başa git
 for(var i=0;i < gridGuzergah.DataRowCount;i++)// gridin başından sonuna kadar
            {
                var oncekideger = gridGuzergah.GetFocusedRowCellValue("ID") as Int32?; // önceki değeri al
                gridGuzergah.MoveNext();// sonraki kayıda git
                var aktifdeger = gridGuzergah.GetFocusedRowCellValue("ID") as Int32?;// aktif değeri al
                
                if (aktifdeger != oncekideger) // önceki değer ile aktif değer farklı ise
                {
                    // satır rengini değiştir
                }
            }
Kullanıcı avatarı
dabaddah
Üye
Mesajlar: 167
Kayıt: 13 Mar 2008 04:42
Konum: istanbul

Re: cx grid renklendirme hakkında

Mesaj gönderen dabaddah »

sevgili orhancc kardeşim ilgin ve cevabın için tekrar çok teşekkür ederim
ama benim işime pek yarar gibi görünmüyor.

mantıkta sorun yok zaten.
baştan sona dönüp değişik id de boolean değişkene değeri yazdırıcaz.

ancak daha önceki mesajdada dediğim gibi döngüyü gridin boyandığı eventin içinde yapsam program kilitleniyor
döngüyü bu eventin dışında yapsam boyama yaparken değişkenin son değerini alıyor bütün gridi aynı değere boyuyor.
boyamayı ise döngünün içinde yapmak zaten mümkün değil.

bu durumda neler yapabiliriz

herkese iyi çalışmalar
insanın özü tanımasına engel olan perdeleri;
1.kendini beden sanma
2.vehmî benlik
3.beş duyu blokajları
4.toplumsal şartlanmalar ve şartlanmaların oluşturduğu değer yargıları ve değer yargılarından gelen duygular
kişi bu perdelerden arınmadıkça göresel kozasında yaşar ve bir ipek böceği gibi kaynar kazana atılır.
Kullanıcı avatarı
dabaddah
Üye
Mesajlar: 167
Kayıt: 13 Mar 2008 04:42
Konum: istanbul

Re: cx grid renklendirme hakkında

Mesaj gönderen dabaddah »

arkadaşlar;
yapmak istediğim id ye göre renklendirmeyi hala yapamadım. tekrar yardımlarınızı bekliyorum

herkese iyi çalışmalar
insanın özü tanımasına engel olan perdeleri;
1.kendini beden sanma
2.vehmî benlik
3.beş duyu blokajları
4.toplumsal şartlanmalar ve şartlanmaların oluşturduğu değer yargıları ve değer yargılarından gelen duygular
kişi bu perdelerden arınmadıkça göresel kozasında yaşar ve bir ipek böceği gibi kaynar kazana atılır.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: cx grid renklendirme hakkında

Mesaj gönderen mrmarman »

Yukarda önerdiğim şekilde çalışacağına ilişkin kanaatim sürüyor. SQL cümlenizi burada paylşırsanız inceleme şansımız olur.
Resim
Resim ....Resim
Cevapla