Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Enttäuschung: Kein Image,Panel, individueller Farbumschag bei FontColor und Panel

  Alt 12. Jun 2015, 12:39
In OnPaint/OnPainting einfach Canvas.Brush.Color zuzuweisen geht auch nicht, so wie man es vielerorts aus der VCL kannte.
Find ich zwar auch ein bissl umständlich und blöd, aber so isses nunmal.
Auch hierzu muss man ergänzen, dass es zwar nicht über Canvas.brush.color geht, aber eben z.B. so:

Delphi-Quellcode:
procedure TForm14.Panel1Paint(Sender: TObject; Canvas: TCanvas;
  const ARect: TRectF);
begin
  canvas.BeginScene;
  canvas.Fill.Kind := TBrushKind.bkSolid;
  Canvas.Clearrect (Arect, TAlphaColorRec.Yellow);
  canvas.EndScene;
end;
Das zeichnet das Panel in Gelb, egal was man für einen Stil zugewiesen hat. Allerdings muss man dann auch alles andere, was sich im Panel befindet, selber zeichnen, für das TPanel dann vielleicht nicht so sinnvoll. Aber hilfreich zu wissen, wenn man z.B. in einem Listbox-Item eine andere Hintergrundfarbe benötigt, oder gleich mehrere unterschiedliche Hintergrundfarben innerhalb des gleichen ListBoxItems.

Generell ist es möglich, mit dem FMX-Canvas wie zu VCL-Zeiten zu arbeiten. Wo FMX gewisse Einschränkungen hat, zeichne ich das eine oder andere eben selber über den Canvas (z.B. bei mehreren TString-Columns in einem StringGrid, die unterschiedliche Ausrichtungen haben (also Links,- rechtsbündig oder zentriert)).

Insgesamt finde ich es aber als Erleichterung, das nicht mehr tun zu müssen (über den Canvas arbeiten). Unter der VCL habe ich fast alle Grids oder Listboxen per Ownerdraw gezeichnet, unter FMX benötige ich das fast nicht mehr.
  Mit Zitat antworten Zitat