Einzelnen Beitrag anzeigen

Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.468 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#212

AW: Delphi "Sydney" (10.4) ist da!

  Alt 6. Jun 2020, 15:16
Mir ist dieser spezielle Bug zwar noch nicht aufgefallen, aber dass TStringGrid in Delphi 10.4 eine Macke haben muss, habe ich auch schon gesehen (siehe Anhang). Ich habe dann mal für den Bug gestimmt...
Hättest du dafür einmal ein Beispielprojekt?
Es sieht für mich so aus als hättest du DefaultDrawing aktiv und würdest zusätzlich den Text selbst zeichnen, kann das sein? Oder der Text wird dort teilweise doppelt gezeichnet, aber das war mir zumindest nicht aufgefallen.

Wenn es nämlich einen weiteren Bug geben sollte, sollte ich (oder du) das dort ergänzen oder eine neue Meldung aufmachen, je nachdem woran es liegt.
Ja, DefaultDrawing ist True.

Und dann gibt es noch einen OnDrawCell Event:

Delphi-Quellcode:
procedure TfmUsesManager.DrawStringGridCell(_sg: TStringGrid; const _Text: string; const _Rect: TRect;
  _State: TGridDrawState; _Focused: Boolean; _Tag: Integer);
var
  cnv: TCanvas;
begin
  cnv := _sg.Canvas;
  if _Text = 'then
    cnv.Brush.Color := _sg.Color
  else begin
    if gdSelected in _State then begin
      if not _Focused then begin
        cnv.Brush.Color := clDkGray;
        cnv.Font.Color := clWhite;
      end;
    end else begin
      if _Tag <> 0 then begin
        cnv.Brush.Color := clYellow;
      end;
    end;
  end;
  cnv.FillRect(_Rect);
  cnv.TextRect(_Rect, _Rect.Left + 2, _Rect.Top + 2, _Text);
end;

procedure TfmUsesManager.sg_AvailDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect;
  State: TGridDrawState);
var
  sg: TStringGrid absolute Sender;
  GridFocused: Boolean;
begin
  GridFocused := sg.Focused or edtUnitFilter.Focused or edtIdentifierFilter.Focused;
  DrawStringGridCell(sg, sg.Cells[ACol, ARow], Rect, State, GridFocused, 0);
end;
Es mag an den +2 in cnv.TextRect liegen. Kann sein, dass die in Delphi 10.4 nicht mehr passen, warum auch immer, denn in den früheren Versionen gab es das Problem nicht. Ich habe noch nicht versucht, es zu debuggen.
Thomas Mueller
  Mit Zitat antworten Zitat