Einzelnen Beitrag anzeigen

MeisterLampe

Registriert seit: 10. Dez 2012
16 Beiträge
 
Delphi XE2 Starter
 
#9

AW: DrawGrid Inhalt verschwindet beim Auswählen einer Zelle/Reihe

  Alt 6. Jan 2013, 18:37
Für alle die ein ähnliches Problem haben. Ich habe nun rausgefunden, woran es wirklich lag.
Und zwar fehlten 2 Codezeilen:

Rect1.Width := Rect.Width;

Rect2.Width := Rect.Width;

Also vollständig dann so:
Delphi-Quellcode:
procedure TForm1.DrawGridDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
Var
  Rect1, Rect2: TRect;
  S: String;
begin
  Rect1.Left := Rect.Left + 5;
  Rect1.Top := Rect.Top;
  Rect1.Height := Rect.Height Div 2;
  { Wichtig } Rect1.Width := Rect.Width; { Wichtig }

  Rect2.Left := Rect.Left + 25;
  Rect2.Top := Rect.Top + (Rect.Height Div 2);
  Rect2.Height := Rect.Height DIV 2;
  { Wichtig } Rect2.Width := Rect.Width; { Wichtig }

  S := 'Text 1';
  DrawGrid.Canvas.Font.Color := clBlack;
  DrawGrid.Canvas.TextRect(Rect1, S, [tfVerticalCenter, tfSingleLine]);

  S := 'Text 2';
  DrawGrid.Canvas.Font.Color := $006B6B6B;
  DrawGrid.Canvas.TextRect(Rect2, S, [tfVerticalCenter, tfSingleLine]);
Ansonsten kann es passieren, dass Rect1 oder Rect2 einen negativen Wert bekommen und somit das TextRect verschwindet
  Mit Zitat antworten Zitat