AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TDBGrid flackert bei DrawColumnCell

Ein Thema von Ramses · begonnen am 1. Mär 2004 · letzter Beitrag vom 23. Nov 2022
Antwort Antwort
Ramses

Registriert seit: 11. Nov 2003
Ort: Saarbrücken
16 Beiträge
 
#1

TDBGrid flackert bei DrawColumnCell

  Alt 1. Mär 2004, 22:12
Hallo zusammen.

Wenn ich das Ereignis onDrawColumnCell nutze um den Text in einer bestimmten Zelle zu verändern, flackert das Grid die gesamte Zeit. Sieht aus, als würde ich ständig ein Refesh auslösen.

als Beispiel:
Delphi-Quellcode:
procedure TfEventLog.dbgLogfileDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
 if DataCol = 1 then Column.Field.Text := '-> ' + Column.Field.Text;
end;
Was mache ich falsch?


Grüsse,
Ramses
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: TDBGrid flackert bei DrawColumnCell

  Alt 2. Mär 2004, 05:48
Hi Ramses,

dein Problem liegt in der Handhabung von OnDrawColumnCell. Das ist eigentlich ein Ereignis, bei dem Du direkt in das Zeichnen des Grids eingreifen kannst. Durch das ändern des FieldTextes wird die Methode jedoch erneut aufgerufen usw.

hier mal ein einfaches Beispiel, was Du mit der Methode machen kannst.

Delphi-Quellcode:
procedure TfEventLog.dbgLogfileDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var
  s : string;
begin
  if DataCol = 1 then
  begin
    //neuen Text festlegen
    s:= '-> ' + Column.Field.Text;
    //den, vom System gezeichneten, Inhalt löschen
    dbgLogfile.Canvas.FillRect(Rect);
    //eigenen Text reinschreiben
    dbgLogfile.Canvas.TextRect(Rect,Rect.Left+4,Rect.Top+2,s);
  end;
end;
Hoffe das hilft ein wenig.

Ciao Marco
Marco Warm
  Mit Zitat antworten Zitat
Ramses

Registriert seit: 11. Nov 2003
Ort: Saarbrücken
16 Beiträge
 
#3

Re: TDBGrid flackert bei DrawColumnCell

  Alt 2. Mär 2004, 10:11
Hi Marco.

Danke. Hat geholfen.
Ich dachte mir schon sowas, nur wusste ich nicht wie man es umgeht.


Gruss
Ramses
  Mit Zitat antworten Zitat
lucy

Registriert seit: 25. Okt 2017
63 Beiträge
 
Delphi XE7 Starter
 
#4

AW: TDBGrid flackert bei DrawColumnCell

  Alt 23. Nov 2022, 18:14
hallo, habe das gleiche Problem.

bei mir werden die Zeilen eingefärbt,
wenn ich jetzt ziemlich schnell mit der maus über die zeilen scrolle flackert es

Delphi-Quellcode:
procedure TForm2.dbGridMonitordDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
  Wert: String;
begin
  if (dbGridMonitord.DataSource.DataSet.RecordCount = 0) then
   begin
     dbGridMonitord.Visible := false;
    end else
     begin
  Wert := rettungsdienst.FieldByName('sub').Value;
  if Wert = '1then begin
    dbGridMonitord.Canvas.Brush.Color := clgreen;
    dbGridMonitord.Canvas.Font.Color := clWhite;
  end else if Wert = '0then begin
    dbGridMonitord.Canvas.Brush.Color := clFuchsia;
    dbGridMonitord.Canvas.Font.Color := clBlack;
  end else if Wert = '2then begin
    dbGridMonitord.Canvas.Brush.Color := clHotLight;
    dbGridMonitord.Canvas.Font.Color := clWhite;
  end else if Wert = '3then begin
    dbGridMonitord.Canvas.Brush.Color := clSilver;
    dbGridMonitord.Canvas.Font.Color := clGray;
  end else begin

  end;
  dbGRidMonitord.DefaultDrawColumnCell(Rect, DataCol, Column, State);
 end;
end;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz