![]() |
Zitat:
![]() |
Moin sakura,
also in D5 ist unter TCanvas die Eigenschaft ClipRect beschrieben (dto. TControlCanvas). Nachdem ich die gelesen hatte dachte ich: *freu* daran wird's liegen. Pustekuchen... Read Only. :shock: Das wird dann durch die Grösse der Bitmap eingestellt, aber darauf muss man erst mal kommen ;-) Selbst mein "schmutziger Trick", wie beim Austausch eines Formulares (falls Du Dich erinnerst) lässt sich hier leider nicht anwenden, da ClipRect wohl über GetClipRect ausgelesen wird (ich hab's jetzt nicht extra nachgeschaut). Warum dann kein SetClipRect implementiert wurde, dass die Bitmap entsprechend einstellt wird wohl ewig das Geheimnis von Borland bleiben. (oder ich hab' mir die verschiedenen Eigenschaften nicht richtig angesehen ;-)) |
Zitat:
Zitat:
Zitat:
Delphi-Quellcode:
...:cat:...
...
Canvas.Handle := GetDC(0); try Canvas.SetClipRect(0,0,45,300); // was für eine Bildschirmauflösung das jetzt wär... ... |
Moin sakura,
danke für die Erklärung. Bisher hab' ich noch nie mit Canvas direkt gearbeitet. Allerdings wäre es vielleicht nicht so ganz sinnlos, wenn bei Komponenten wie TImage direkt ein ClipRect angegeben (und eben nicht für die Canvas) und eingestellt werden könnte. Das Setzen einer solchen Eigenschaft könnte dann auch solche von Dir genannten "Gemeinheiten" unterbinden. BTW: Auch wenn's komisch klingt scheint die Canvas wohl richtig zu sein. Es steht ja schliesslich für Leinwand bzw. Zeichenfläche. [EDIT] und wie ist ClipRect in der englischen Hilfe beschrieben? [/EDIT] |
Hallo Christian,
Zitat:
Delphi-Quellcode:
Grüsse, Daniel :hi:
This example creates a region and selects this region as the clipping rectangle for the Image component's canvas. It then sets the canvas's brush color to red and calls FillRect using the ClipRect as the area to fill. Lastly, the ClipRect is reset to the original value that it contained by calling SelectClipRect with nil as the second parameter and deletes the region.
procedure Form1.Button1Click(Sender: TObject); var MyRgn: HRGN ; begin MyRgn := CreateRectRgn(100,100,200,200); SelectClipRgn(Image1.Canvas.Handle,MyRgn); Image1.Canvas.Brush.Color := clRed; Image1.Canvas.FillRect(Image1.Canvas.ClipRect); Image1.Invalidate; SelectClipRgn(Image1.Canvas.Handle,nil); DeleteObject(MyRgn); end; |
Moin Daniel B,
danke, dann war da mal wieder jemand an der Übersetzung, der sich mit englisch etwas schwer tut und/oder der sich mit der Materie nicht auskennt. Und Korrekturlesen von jemandem der sich auskennt hat wohl auch nicht stattgefunden. :? Typisch ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz