Hallo,
Ich habe ein Formular mit einem Image1: TImage. Das Image1 ist nach allen Seiten verankert, so dass es mit einer Vergrößerung des Formular auch vergrößert wird. Die Eigenschaft WindowsState des Forms ist auf wsMaximized gesetzt. Das funktioniert. (Geprüft: OnMouseMove des TImage wird im gesamten Bereich ausgelöst.)
Mein Problem: Der Code
Delphi-Quelltext
1: 2: 3: 4: 5:
| Rect.Left := 0; Rect.Top := 0; Rect.Right := Image1.Width - 1; Rect.Bottom := Image1.Height - 1; Image1.Canvas.FillRect(Rect); |
füllt nur den linken oberen Bereich von Image1 in der Größe, wie ich das Formular designed habe, obwohl Image1 wegen wsMaximized größer geworden ist. Ursache scheint die Eigenschaft Image1.Canvas.ClipRect zu sein, die noch auf die kleineren "designed" Werte gesetzt ist. Mein Versuch, dies mit
Delphi-Quelltext
1:
| SelectClipRgn(Image1.canvas.Handle,HRGN(nil)); |
nach einem Beispiel in der Windows-SDK-Hilfe zu ändern, hatte keinen Erfolg. Ebenso, SelectClipRgn mit den Maßen der vollen Bildfläche aufzurufen, Image1.Canvas.ClipRect blieb unverändert.
Auch nach einem Minimalisieren und erneuten Maximieren des Forms bleibt der Effekt.
Hat jemand eine Idee?
Viele Grüße
GuaAck