Delphi Dünyası Facebook'ta

Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

Gönderen Konu: koşullu biçimlendirme  (Okunma sayısı 1339 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı ozan1453

  • Delphi 1 Level 2
  • **
  • İleti: 16
  • Rep: +0/-0
koşullu biçimlendirme
« : 04 Ağustos 2008 20:03:04 »
sayın arkadaşlar bir tablo yaptım ado ile..bu tabloda belli aralıklar arasında olması gereken metal değerleri var mesela silisyum 2 nin altında olunca yeşil olacak üstüne çıkarsa kırmızı olacak..karbon 3 ün altında yeşil olacak üstüne çıkınca kırmızı olacak gibi .....

Kod:  (Unknown Language)
  1. procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  2.   DataCol: Integer; Column: TColumn; State: TGridDrawState);
  3.   var
  4.    si: variant;
  5.    C:Variant;
  6.   begin
  7.   si:=DBGrid1.DataSource.DataSet.Fieldbyname('Si').AsVariant;
  8.   C:=DBGrid1.DataSource.DataSet.Fieldbyname('C').AsVariant;
  9.   if si > 2 then
  10.   DBGrid1.Canvas.Font.Color:=clgreen;
  11.   DBGrid1.DefaultDrawColumnCell    (Rect, DataCol, Column, State);
  12.   if C < 3 then
  13.   DBGrid1.Canvas.Font.Color:=clgreen;
  14.   DBGrid1.DefaultDrawColumnCell    (Rect, DataCol, Column, State);
  15. end;
  16. end.

bu kodlarla sadece o satır karbonu silisi manganı ...hepsi renk değiştiriyor benim yapmak istediğim sadece değerin bulunduğu hücrenin renk değiştirmesi ..
nasıl yapabilirim yardım edermisiniz? teşekkürler..
« Son Düzenleme: 04 Ağustos 2008 21:19:24 by Kocaturk »

Çevrimdışı Kocaturk

  • Administrator
  • *****
  • İleti: 2.474
  • Rep: +56/-5
  • Cinsiyet: Bay
    • Delphi Dünyası
Ynt: koşullu biçimlendirme
« Yanıtla #1 : 04 Ağustos 2008 21:25:06 »
işin sırrı sadece DataCol parametresinde. Eğer DataCol parametresini kullanmazsan tüm satırı, kullanırsan ilgili hücreyi renklendirirsin.
Diyelimki senin Metal bilgisi DBGrid de 4. sütunda o zaman kodunu,

Kod:  (Unknown Language)
  1. if DataCol = 3 then // Column index sıfırdan başladığı için
  2. ...
  3. ...
  4. ...
  5. end;

şeklinde kodlama yaparsan sadece renklendirmek istediğin sütun daki ilgili hücreler renklendirilecektir.

Çevrimdışı ozan1453

  • Delphi 1 Level 2
  • **
  • İleti: 16
  • Rep: +0/-0
Ynt: koşullu biçimlendirme
« Yanıtla #2 : 06 Ağustos 2008 19:20:38 »
süper tam istediğim gibi oldu.. küçük bir soru daha şimdi ben kodu şöle yazdım..
Kod:  (Unknown Language)
  1. var
  2.    si:  real ;  
  3.    a:extended;
  4.    b:real;
  5.   begin
  6.   si:=DBGrid1.DataSource.DataSet.Fieldbyname('Si').AsFloat;
  7.  
  8.       a:=StrToFloat(Edit1.Text);
  9.       b:=StrToFloat(Edit2.Text);
  10.    if datacol=2 then
  11.   if (si>=a) and (si<=b) then
  12.   DBGrid1.Canvas.Font.Color:=clgreen;
  13.   DBGrid1.font.Style:=[fsBold];
  14.   DBGrid1.Canvas.Brush.Color:=clwhite;
  15.   DBGrid1.DefaultDrawColumnCell    (Rect, DataCol, Column, State);
  16.  
  17.   if datacol=2 then
  18.   if (si<1.7) then
  19.   DBGrid1.Canvas.Font.Color:=clYellow;
  20.     DBGrid1.Canvas.Brush.Color:=clwhite;
  21.   DBGrid1.DefaultDrawColumnCell    (Rect, DataCol, Column, State);
  22.  
  23.    if datacol=2 then
  24.   if (si>1.8) then
  25.   DBGrid1.Canvas.Font.Color:=clred;
  26.     DBGrid1.Canvas.Brush.Color:=clwhite;
  27.   DBGrid1.DefaultDrawColumnCell    (Rect, DataCol, Column, State);
  28. end;
  29. end.
buraya kadar tamam
ama ben  si>1.8  yazdığım yere  1.8 yerine yukardaki gibi bir edit koymayı düşünüyorum..
yukardaki gibi bir kod yazdım ama hata veriyor nerde hata yapıyorum peki..sınırlamaları programın içinde değilde program çalışırken edite yazim ona göre renk değiştirsin.. bilmem anlatabildimmi..
teşekkürler..
« Son Düzenleme: 08 Ağustos 2008 08:35:45 by hayati »

Çevrimdışı Kocaturk

  • Administrator
  • *****
  • İleti: 2.474
  • Rep: +56/-5
  • Cinsiyet: Bay
    • Delphi Dünyası
Ynt: koşullu biçimlendirme
« Yanıtla #3 : 06 Ağustos 2008 20:14:10 »
Kod:  (Unknown Language)
  1. ...
  2. ...
  3. ...
  4. if si > StrToFloat(Edit1.Text) then
  5. ...
  6. ...

Çevrimdışı ozan1453

  • Delphi 1 Level 2
  • **
  • İleti: 16
  • Rep: +0/-0
Ynt: koşullu biçimlendirme
« Yanıtla #4 : 07 Ağustos 2008 20:00:01 »
şu kodda ne gibi bir hata var ..
 
Kod:  (Unknown Language)
  1.  procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  2.   DataCol: Integer; Column: TColumn; State: TGridDrawState);
  3.   var
  4.      c:real;
  5.      begin
  6.      c:=DBGrid1.DataSource.DataSet.Fieldbyname('c').AsFloat;
  7.  
  8.   if datacol=1 then
  9.   if C >= StrToFloat(edit1.text)  then DBGrid1.Canvas.Font.Color:=clgreen;
  10.  
  11.   DBGrid1.DefaultDrawColumnCell    (Rect, DataCol, Column, State);
  12. end;
  13. end.
Debugger exception notification başlıklı ve sonrasında
econverterrorr with message edit1 is a nat a valid floating not a value.....

gibi bir hata çıkıyor anlıyamıyorum nerde olduğunu hatanın..
« Son Düzenleme: 08 Ağustos 2008 08:38:17 by hayati »

Çevrimdışı Kocaturk

  • Administrator
  • *****
  • İleti: 2.474
  • Rep: +56/-5
  • Cinsiyet: Bay
    • Delphi Dünyası
Ynt: koşullu biçimlendirme
« Yanıtla #5 : 07 Ağustos 2008 20:53:56 »
Edit e girdiğin değer kayan noktalı bir rakam olmadığından bu hatayı alıyorsun.

Çevrimdışı ozan1453

  • Delphi 1 Level 2
  • **
  • İleti: 16
  • Rep: +0/-0
Ynt: koşullu biçimlendirme
« Yanıtla #6 : 07 Ağustos 2008 21:20:33 »
kayan noktalı bir rakam ne demek .. bu arada ben rakam girmeden run a basınca bu hata çıkıyor

Çevrimdışı Kocaturk

  • Administrator
  • *****
  • İleti: 2.474
  • Rep: +56/-5
  • Cinsiyet: Bay
    • Delphi Dünyası
Ynt: koşullu biçimlendirme
« Yanıtla #7 : 07 Ağustos 2008 21:45:31 »
:):) öncelikle delphide tanımlanan değişken tipleri konusunda biraz teorik bilgiye ihtiyacın var, ve Rakam girmezsen
StrToFloat ile neyin dönüşümünü (conversion) yapacaksın, en azından Edit in Text ini default olarak sıfır yap, yada, edit in boş olup olmadığının denetimini yap.

Çevrimdışı ozan1453

  • Delphi 1 Level 2
  • **
  • İleti: 16
  • Rep: +0/-0
Ynt: koşullu biçimlendirme
« Yanıtla #8 : 07 Ağustos 2008 23:07:04 »
değişken tipleri konusunda sana katılıyorum biraz bilgiye ihtiyacım var.. :)
sabır gösterip yardım ettiğin için teşekkürler ben biraz daha çalışıp tekrar karşına çıkim..:)

Çevrimdışı Kocaturk

  • Administrator
  • *****
  • İleti: 2.474
  • Rep: +56/-5
  • Cinsiyet: Bay
    • Delphi Dünyası
Ynt: koşullu biçimlendirme
« Yanıtla #9 : 08 Ağustos 2008 11:23:03 »
Bak bizim Fatih'in kitabı çıkmak üzere örneğin Değişkenler, Tip Dönüşümü, Formatlama gibi konular 46 sayfada işlenecek senin seviyendeki birisine olacağı gibi bizlere de çok konuda ışık tutacağı inancındayım.
Kitap içieriği hakkında bilgiyi Fatih kardeşim kişisel sitesinde açıklamış Buradan bakabilirsin