Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Form nicht rechteckig (https://www.delphipraxis.net/135484-form-nicht-rechteckig.html)

KahPee 11. Jun 2009 17:08


Form nicht rechteckig
 
Hallo,
ich möchte bei einem Projekt, an dem ich im Moment arbeite es möglich machen eine Form nicht rechteckig darzustellen.
Von den Voreinstellungen her wird eine Form ja immer rechteckig dargestellt. Ich möchte jetzt im Prinzip wieder die Form so gestalten wie bisher, die Hintergrundgrafik (z.B. eine png) soll letztendlich die Umrisse der Form angeben (border=none).
Ich hoffe man kann verstehen was ich meine. Auch wenn es nicht über eine PNG umsetzbar wäre ich für Lösungsvorschläge sehr dankbar.

mfg KahPee

Jens Hartmann 11. Jun 2009 17:10

Re: Form nicht rechteckig
 
Hallo,

Also wenn ich die richtig verstanden habe, willst Du z.B. eine Viereckige Form. Wenn es das ist, kannst Du die Größe doch einfach anpassen. Wenn Du was ganz anderes willst, brauchst Du dazu Spin Komponenten oder so.

Gruß Jens

DeddyH 11. Jun 2009 17:34

Re: Form nicht rechteckig
 
Die Form hat doch mit der Größe nichts zu tun. IIRC gab es bei den Schweizern einen Code dazu, ansonsten lies Dich mal in Regions ein (SetWindowRgn und Konsorten).

[edit] Code bei den Schweizern [/edit]

SimStar001 11. Jun 2009 17:39

Re: Form nicht rechteckig
 
kein ding, ganz einfach:

hier mal ein Bsp:

Delphi-Quellcode:
procedure TfrmMain.FormCreate(Sender: TObject);
var HR1 : Hrgn;
    P : array [0..3] of TPoint;

begin
  P[0] := Point(0,0);
  P[1] := Point(0,100);
  P[2] := Point(100,0);
  P[3] := Point(0,0);

  HR1 := createPolygonRgn(P,4,ALternate);

  SetWindowRgn(Handle,HR1,True);
end;
Du kannst beliebig viele Punkte ins Array packen... je nach dem was du als Form haben willst!


LG Marco

KahPee 12. Jun 2009 06:23

Re: Form nicht rechteckig
 
wenn man jetzt aber ein unförmiges Hintergrundbild hat, dann wird das sehr aufwendig. Bei mir handelt es sich um eine unregelmäßige ganz leichte Wellenlinie das wäre irre aufwendig da die ganzen Punkte einzugeben. Mal ganz davon abgesehen hätte man das gleiche Problem bei einem Kreis (obwohl dabei hätte man noch den VOrteil, dass man den per procedur erzeugen kann).

Gibt es noch andere Möglichkeitenß?

oki 12. Jun 2009 06:38

Re: Form nicht rechteckig
 
Hi, lies mal diesen Thread, da ist ein Beispiel dabei, wie du deine Form auf Grundlage eines eigenne Bildes anpassen kannst.

transprent Form

Grundlage ist aber wie bereits erwähnt Regions.

Gruß oki

KahPee 15. Jun 2009 12:45

Re: Form nicht rechteckig
 
Hallo, danke für den Hinweis zu transparenten Formen an dieser Stelle, bei weiterem Suchen ahbe ich dies hier gefunden
Delphi Tutorial - Shaping a Form around a Bitmap (Englisch)

Da ich Anfänger bin habe ich so meine Probleme den Code dort zu verstehen, allerdings wird mit der erwünschte Effekt in dem Projekt erfüllt. Als ich nun den Code testweise übernommen habe gab es allerdings auch nach anpassen von TImage1 (etc.) noch Probleme. Ich habe es also nicht selber umsetzten können. Liegt das evtl daran, dass ich DELPHI 4 benutze?
Bzw. kann mir jemand evtl erklären wie das ganze aussehen müsste für Delphi 4.

Vielen Dank schon für eure Hilfe

mfg KahPee

DeddyH 15. Jun 2009 12:48

Re: Form nicht rechteckig
 
Woran hakt es denn? Evtl. könntest Du auch über die Verwendung von Turbo Delphi Explorer nachdenken, das ist kostenlos und moderner.

SimStar001 15. Jun 2009 12:49

Re: Form nicht rechteckig
 
Dann lass doch deine Eckpunkte der Form mitels einer Funktion oder so berechnen. oder mach dir einmal die Arbeit und ermittle alle Punkte sofern das Bild gleich bleibt!

KahPee 15. Jun 2009 12:56

Re: Form nicht rechteckig
 
Das Problem bei der Sache ist, dass es Wahnsinn wäre die ganzen Punke manuell nachzuprüfen. Die Punkte sind unregelmäßig angeordnet und das sind nen paar hundert wenn nicht sogar ein paar Tausend.
Gibt es für Delphi 4 da keine halbwegs geeignete Variante?

mfg Kahpee


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz