Einzelnen Beitrag anzeigen

easywk

Registriert seit: 9. Jul 2003
Ort: Schwanewede
117 Beiträge
 
Delphi 7 Enterprise
 
#1

TImage und Canvas.ClipRect

  Alt 27. Jan 2006, 09:32
Moin, moin,

ich habe auf meinem Formular ein TImage, bei dem die Eigenschaft Align auf alClient gesetzt ist. Anhand eines Buttons zeichne ich die Fläche neu:

Delphi-Quellcode:
  Img.Canvas.Brush.Color:=clWHITE;
  Img.Canvas.FillRect(Rect(0,0,Img.Width,Img.Height));
  Img.Canvas.Rectangle(0,0,Img.Width,Img.Height);
Wenn ich jetzt das Formular maximiere und die Funktion zum Neuzeichnen aufrufe, dann bekomme ich das Bild nur in der alten Größe mit dem Unterschied, dass die untere und die rechte Linie vom Rechteck fehlen. Beim Debuggen habe ich dann festgestellt, dass Img.Width und Img.Height die zur neuen Formulargröße passenden Werte haben (also verändert sind), dass Img.Canvas.ClipRect jedoch noch den alten Wert hat, weshalb ausserhalb dieses Bereichs nicht gezeichnet wird. Leider ist ClipRect read-only ...

Kann mir jemand sagen, wie ich es hinbekomme, dass bei Größenänderungen des Parentformulars nicht nur die Eigenschaft Width und Height vom Image geändert werden, sondern auch das ClipRect angepasst wird?

Gruss aus Bremen
easywk
Björn
if all else fails - read the instructions
  Mit Zitat antworten Zitat