Autor Beitrag
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Do 21.11.02 00:35 
Es geht hier nicht um die API Möglichkeit. ClipRect kann in Canvas nur gelesen werden. Irgendwo hab ich aber gelesen, daß man das doch irgendwo festlegen kann, hab aber vergessen was da genau stand. Weiss einer vielleich mehr? Wie gesagt, es geht hier nicht um die API Möglichkeit, sondern Canvas.
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Do 21.11.02 21:13 
Aus der Online Hilfe:
Zitat:
In diesem Beispiel wird ein Bereich erzeugt. Dieser Bereich wird der Eigenschaft ClipRect der Zeichenfläche zugewiesen. Anschließend wird die Pinselfarbe der Zeichenfläche auf rot gesetzt und FillRect aufgerufen, um den Bereich ClipRect auszufüllen. Zum Schluß wird ClipRect auf den ursprünglichen Wert zurückgesetzt, indem SelectClipRect mit nil als zweiten Parameter aufgerufen wird, und der Bereich gelöscht.

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
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;


Wie man sieht, kann ClipRect nur über die API SelectClipRgn gesetzt werden.

_________________
Ist Zeit wirklich Geld?
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: Do 21.11.02 21:37 
Zufällig war ich im Forum, deshalb meine schnelle Antwort.

In dem Buch das ich mir damals angeguckt habe stand, daß man ein einem Event ein TRect als Parameter bekommt. Dieser ist zuerst gleich dem ClipRect. Man kann aber diesen Rect Bereich in diesem Event neu setzen und schon ist der ClipRect so wie man es will. Ich hab mich später drann erinert und hab mir alle Events angeguckt aber nichts gefunden. Wie gesagt, es ging hier entweder um TBitmap oder TCanvas.

Wer sagt aber, daß ein Buchautor ne Leuchte sein muß.

Eine Frage: in welcher OnlineHilfe steht dein Zitat. Ich hab in der D5E nachgeguckt und fand nichts zu SelectClipRgn. Nur in der API steht was zu dem Thema und die hat keine Delphibeispiele.

Noch ne Frage: Ich sehe in deinem Beispiel SelectClipRgn(Canvas.Handle,nil) und ich hab bis jetzt immer SelectClipRgn(Canvas.Handle,0) gemacht. Müßte doch das gleiche ergeben, oder? Sonst muß ich meine alten Codes verbessern.
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Do 21.11.02 22:53 
Das Beispiel stammt aus der OH von Delphi 6 zu ClipRect. Das bei SelectClipRgn das nil steht kann ich dir auch nicht erklären. Es müsste 0 dort stehen.

_________________
Ist Zeit wirklich Geld?