Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Form abrunden?


Florian.K - Mo 12.06.06 23:30
Titel: Form abrunden?
Mal wieder, Hi Community ;D
Ich sah ein Programm das eine abgerundete Form hatte.
Ich hab jetzt ein schönes Programm gecoded und möchte wissen ob ic hdas auch machen kann
oder benötige ich dazu besondere Form Tools oder Komponenten
Danke im Voraus

edit : es wurde nicht mit VB gecoded sonder mit delphi ;]


Moderiert von user profile iconraziel: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Di 13.06.2006 um 07:03


rochus - Mo 12.06.06 23:38

Die folgende Seite sollte exakt das richtige für dich sein:
http://delphi.about.com/od/windowsshellapi/l/aa120898.htm


Gruß


Florian.K - Mo 12.06.06 23:53

Das wär mir dann ne Ecke zu rund ^^


_frank_ - Di 13.06.06 02:45

suchst du sowas? (hab mein OSD-Programm mal bisschen angepasst)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
var HRgn: THandle; //globale variable

procedure...
var
  s: string;
  b:TBitmap;
begin
  //alte definition löschen
  DeleteObject(HRgn);
  //hilfsbitmap erzeugen
  b:=Tbitmap.create;
  //form und bitmap-größe setzen
  self.width:=200;
  self.height:=200;
  b.width:=self.width;
  b.height:=self.Height;

  //die form-definition
  BeginPath(b.canvas.Handle);
  SetBkMode( b.canvas.Handle, TRANSPARENT );
  b.canvas.Pen.Color:=clBlack;
  b.canvas.Brush.color:=clred;
  //hier die eigentliche definition abgerundetes rechteck über ganze breite mit 20px Abrundung
  b.canvas.RoundRect(0,0,width,height,20,20);
  EndPath(b.canvas.Handle);

  //region erzeugen
  HRgn := PathToRegion(b.canvas.Handle);
  //und zuweisen
  SetWindowRgn(Handle, HRgn, True);
  b.free;
end;


HTH Frank


Delete - Di 13.06.06 08:10

Also ich benutze der Einfachheit immer TCoolForm. Damit kannst Du eine beliebige Maske (BMP) erstellen und die Komponente blendet beispielsweise alles aus, was schwarz (beliebige Farbe) ist.
Hier kannst du die Komponente (freeware mit source!) downloaden:
http://www.torry.net/quicksearchd.php?String=coolform&Title=Yes


_frank_ - Di 13.06.06 08:36

user profile iconrd3 hat folgendes geschrieben:
Also ich benutze der Einfachheit immer TCoolForm. Damit kannst Du eine beliebige Maske (BMP) erstellen und die Komponente blendet beispielsweise alles aus, was schwarz (beliebige Farbe) ist.
Hier kannst du die Komponente (freeware mit source!) downloaden:
http://www.torry.net/quicksearchd.php?String=coolform&Title=Yes


wenn ich komplexere Formen habe mache ich das auch, aber wenns nur solche einfachen formen sein sollen, dann mach ichs lieber so...ist halt Geschmackssache...

Gruß Frank


starsurfer - Di 13.06.06 09:29

wenn du es ohne viel Code haben willst:

1. Form Borderstyle auf bsnone stellen
2. Ein Schape in der gewünschten Form/Farbe/Größe auf die Form stellen(alternativ geht auch ein TImage)
3. bei oncreate der Form muss das hier rein:

Delphi-Quelltext
1:
    Form1.Brush.Style:=bsClear;                    


schon haste deine Gewünschte Form....