Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Grafik / Sound / Multimedia (https://www.delphipraxis.net/21-library-grafik-sound-multimedia/)
-   -   Delphi Sternförmiges Formular (https://www.delphipraxis.net/15817-sternfoermiges-formular.html)

Kinimod8 4. Feb 2004 16:04


Sternförmiges Formular
 
Hallo,

um ein Formular sternformig aussehen zu lassen muss man erstmal Punkte definieren:

Delphi-Quellcode:
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));
Um diese Punkte zu Benutzen muss der Code in das OnCreate-Ereignes des Forms.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  Rgn : HRGN;
begin
  Rgn := CreatePolygonRgn(RgnPoints, High(RgnPoints), ALTERNATE);
  SetWindowRgn(Handle, Rgn, True);
end;

CalganX 9. Feb 2004 20:03

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

shareholder 13. Feb 2004 00:17

Re: Sternförmiges Formular
 
kann ich auch irgendwie resizen ?
kann ich auch kurven malen ?
:?: thanx ! nette spielerei.

himitsu 14. Feb 2004 00:00

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:
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;
oder
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