![]() |
Sternförmiges Formular
Hallo,
um ein Formular sternformig aussehen zu lassen muss man erstmal Punkte definieren:
Delphi-Quellcode:
Um diese Punkte zu Benutzen muss der Code in das OnCreate-Ereignes des Forms.
const
RgnPoints : array[1..10] of TPoint = ((X:203;Y:22), (X:157;Y:168), (X:3;Y:168), (X:128;Y:257), (X:81;Y:402), (X:203;Y:334), (X:325;Y:422), (X:278;Y:257), (X:402;Y:168), (X:249;Y:168));
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var Rgn : HRGN; begin Rgn := CreatePolygonRgn(RgnPoints, High(RgnPoints), ALTERNATE); SetWindowRgn(Handle, Rgn, True); end; |
Re: Sternförmiges Formular
Hi,
auf diese Weise lässt sich nahezu jede Form erstellen. Wichtig ist nur, dass man die Punkte dem entsprechend setzt. Chris |
Re: Sternförmiges Formular
kann ich auch irgendwie resizen ?
kann ich auch kurven malen ? :?: thanx ! nette spielerei. |
Re: Sternförmiges Formular
Liste der Anhänge anzeigen (Anzahl: 1)
z.B.: (allerdings mußt du selber für eine Prozedur zur Größenänderung sorgen, da ja der Rahmen zum ändern fehlt)
Delphi-Quellcode:
oder
Procedure TForm1.FormCreate(Sender: TObject);
Begin FormResize(Sender); End; Procedure TForm1.FormResize(Sender: TObject); Var RgnPoints: Array[1..3] of TPoint; Rgn: HRGN; Begin RgnPoints[1] := Point(10, 10); RgnPoints[2] := Point(10, Height); RgnPoints[3] := Point(Width, 10); Rgn := CreatePolygonRgn(RgnPoints, High(RgnPoints), ALTERNATE); SetWindowRgn(Handle, Rgn, True); End;
Delphi-Quellcode:
Procedure ausschneiden(X, Y: Integer);
Var RgnPoints: Array[1..3] of TPoint; Rgn: HRGN; Begin RgnPoints[1] := Point(10, 10); RgnPoints[2] := Point(10, X); RgnPoints[3] := Point(Y, 10); Rgn := CreatePolygonRgn(RgnPoints, High(RgnPoints), ALTERNATE); SetWindowRgn(Form1.Handle, Rgn, True); End; Procedure TForm1.FormCreate(Sender: TObject); Begin ausschneiden(100, 200); End; Procedure TForm1.irgendwas {zum ändern} Begin ... ausschneiden(300, 400); ... End; In der Demo findest du noch ein paar Methoden, um andere Formen zu erstellen und diese auch zu kombinieren. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:17 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 by Thomas Breitkreuz