dbgridde renklendirilmiş satırların görünürlüğü kötü

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

dbgridde renklendirilmiş satırların görünürlüğü kötü

Mesaj gönderen nitro »

s.a.
bir gridde kayıtların belirli özelliklerine göre renklendirme yapıyorum, ama renklendirilmiş bir satır seçildiği zaman normal bir satır seçilmesi gibi net belli olmuyor. farklı bir çok renk denedim ama nafile.
olayın daha iyi anlaşılması için beyz satırın seçilmiş halinin, ve renklendirilmiş satırın seçilmiş halini resim olarak koyuyorum.
yapmak istediğim renklendirilmiş satırın da, beyaz satır gibi seçili olduğu zaman belirgin bir şekilde görünmesi.
saygılarımla
Resim
Kullanıcı avatarı
TRSoft
Kıdemli Üye
Mesajlar: 636
Kayıt: 13 Şub 2004 11:39
Konum: Konya
İletişim:

Mesaj gönderen TRSoft »

Şu anda kodlar elimin altında değil ama nasıl satırları renklendirebiliryorsanız seçildiğinde hangi renkleri alacağınıda belirleyebilirsiniz. Umuyorum ki forumda mevcuttur kodlar ama bulamazsanız ben bir bakayım...
İlimle geçen bir gece,
ibadetle geçen bin geceden hayırlıdır.
HZ. MUHAMMED (S.A.)
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

hocam gdfocused and state diye arama yaptırdım ve kodumu aşağıdaki gibi düzenledim.

Kod: Tümünü seç

if f_stokkart.DBGrid1.DataSource.DataSet.FieldByName('STOKDOVIZ').text='DOLAR' then
    begin
    IF (gdFocused IN State) THEN 
            dbgrid1.canvas.brush.color := clRed else 
    f_stokkart.DBGrid1.canvas.Brush.Color:=$00B5FBEA;
    f_stokkart.DBGrid1.Canvas.FillRect(rect);
    f_stokkart.DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);

    end;
sonuç böyle oldu.
Resim
nerde yanlış yaptım acaba?
Kullanıcı avatarı
vampir261
Üye
Mesajlar: 298
Kayıt: 23 Kas 2004 03:22
Konum: Denizli

Mesaj gönderen vampir261 »

Kod: Tümünü seç

procedure TForm8.suiDBGrid2DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var
    MyValue,zamans: string;
    zaman:TDate;
    label cikis;
begin
    if gdSelected in State then Exit;
    MyValue := suiDBGrid2.DataSource.DataSet.FieldByName('durum').AsString;

    if MyValue='ÖDENDİ' then
    begin
        suiDBGrid2.Canvas.Brush.Color := $00EAFFEA;
        suiDBGrid2.Canvas.Font.Color:=clMaroon;
    end

    else then
    begin
        suiDBGrid2.Canvas.Brush.Color := $008080FF;
        suiDBGrid2.Canvas.Font.Color:=clwhite;
    end;

    suiDBGrid2.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
Bu işine yarar sanırım
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@nitrokonat yazdı:hocam gdfocused and state diye arama yaptırdım ve kodumu aşağıdaki gibi düzenledim.
Kod:
if f_stokkart.DBGrid1.DataSource.DataSet.FieldByName('STOKDOVIZ').text='DOLAR' then
begin
IF (gdFocused IN State) THEN
dbgrid1.canvas.brush.color := clRed else
f_stokkart.DBGrid1.canvas.Brush.Color:=$00B5FBEA;
f_stokkart.DBGrid1.Canvas.FillRect(rect);
f_stokkart.DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);

end;
- Hocam FillRect yamışsın ama içeriği yazdırmayı unutmuşsun...

Kod: Tümünü seç

    f_stokkart.DBGrid1.Canvas.FillRect(rect); 
    f_stokkart.DBGrid1.Canvas.TextOut( Rect.Left, Rect.Top,  f_stokkart.DBGrid1.DataSource.DataSet.FieldByName('STOKDOVIZ').text );
mesela..
Resim
Resim ....Resim
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
ben renkleri ayarladıktan sonra

Kod: Tümünü seç

defaultdrawcolumncell(...)
(defaultdrawdatacell de olabilir) komutunu kullanarak yazı ve çizim işlerini dbgride yaptırıyorum.
yani fillrect ve textout komutları ile uğraşmıyorum.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Cevapla