MathiasH
Beiträge: 699
WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
|
Verfasst: Sa 29.06.02 08:40
ein Form beliebig "verformen"?
Ein Weg wie man seine Forms verformen kann:
1. Rundes Fenster
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm1.FormCreate(Sender: TObject); var HR: HRgn; p:array[0..3] of TPoint; begin p[0]:=Point(Width div 2,1); p[1]:=Point(1, Height div 2); p[2]:=Point(Width div 2,Height); p[3]:=Point(Width, Height div 2); HR:= CreateEllipticRgn (0, 0, Width, Height); SetWindowRgn(Handle, HR, True); end; |
2. und hier für Sprechblasen alla MSOffice:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.FormCreate(Sender: TObject); var formregion, secregion: HRGN; corners: Array [0..2] of TPoint; begin formregion := CreateRoundRectRgn( 0, 0, clientwidth, clientheight-48, 40, 40 ); corners[0] := Point( 50, clientheight-50 ); corners[1] := Point( 55, clientheight ); corners[2] := Point( 80, clientheight-50 ); secregion := CreatePolygonRgn( corners, 3, WINDING ); CombineRgn( formregion, formregion, secregion, RGN_OR ); DeleteObject( secregion ); SetWindowRgn( handle, formregion, true ); end; |
für 2. braucht man auch noch dieses hier:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm1.FormPaint(Sender: TObject); var tempregn: HRGN; begin With Canvas.Brush Do Begin Color := clBlack; Style := bsSolid; End; tempregn := CreateRectRgn(0,0,1,1); GetWindowRgn( Handle, tempregn ); FrameRgn( Canvas.Handle, tempregn, Canvas.Brush.handle, 1, 1 ); DeleteObject( tempregn ); end; |
MathiasH
Moderiert von jasocul: Beitrag geprüft am 25.05.2006
_________________ "Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
Zuletzt bearbeitet von MathiasH am Sa 06.07.02 10:35, insgesamt 1-mal bearbeitet
|