Home » Tipps & Tricks » Komponenten » TForm » Formular wie ein Balloon anzeigen

Formular wie ein Balloon anzeigen

Übernehme diese beiden Proceduren (OnCreate und OnPaint) und Stelle die Eigenschaft BorderStyle auf bsNone:

procedure TForm1.FormCreate(Sender: TObject);
var
  formregion, beakregion: HRGN;
  beak: Array [0..2] of TPoint;
begin
  formregion := CreateRoundRectRgn(
                  0, 0, clientwidth, clientheight-48,
                  40, 40 );
  beak[0] := Point( 50, clientheight-50 );
  beak[1] := Point( 55, clientheight );
  beak[2] := Point( 80, clientheight-50 );
  beakregion := CreatePolygonRgn( beak, 3, WINDING );
  CombineRgn( formregion, formregion, beakregion, RGN_OR );
  DeleteObject( beakregion );
  SetWindowRgn( handle, formregion, true );
end;

procedure TForm1.FormPaint(Sender: TObject);
var
  temprgn: HRGN;
begin
  With Canvas.Brush Do Begin
    Color := clBlack;
    Style := bsSolid;
  End;
  temprgn := CreateRectRgn(0,0,1,1);
  GetWindowRgn( Handle, temprgn );
  FrameRgn( Canvas.Handle, temprgn,
            Canvas.Brush.handle, 1, 1 );
  DeleteObject( temprgn );          
end;