Como Criar Forms Não Retangulares no Delphi

No Delphi, é possível alterar o formato padrão de uma janela (form) para uma forma personalizada, como uma elipse. Isso pode ser útil para criar interfaces diferenciadas e modernas.

Passo a Passo

1. Ajuste as Propriedades do Form

Antes de aplicar a alteração de formato, configure as seguintes propriedades do Form:

  • BorderStyle → Defina como bsNone para remover a borda padrão.
  • Position → Ajuste para poScreenCenter para manter os componentes centralizados.

2. Código para Criar um Form Elíptico

Agora, insira o seguinte código no evento OnCreate do formulário:

procedure TForm1.FormCreate(Sender: TObject);
var
  hR: THandle;
begin
  { Cria uma forma elíptica para o formulário }
  hR := CreateEllipticRgn(0, 0, Width, Height);
  SetWindowRgn(Handle, hR, True);
end;

3. Personalização Adicional

Caso queira criar um form em formato irregular, utilize a função CreatePolygonRgn para definir uma região poligonal ao invés de uma elipse.

Exemplo de um form triangular:

procedure TForm1.FormCreate(Sender: TObject);
var
  Points: array[0..2] of TPoint;
  hR: THandle;
begin
  { Define os pontos do triângulo }
  Points[0] := Point(Width div 2, 0);     // Topo
  Points[1] := Point(0, Height);          // Canto inferior esquerdo
  Points[2] := Point(Width, Height);      // Canto inferior direito

  { Cria um form triangular }
  hR := CreatePolygonRgn(Points, 3, WINDING);
  SetWindowRgn(Handle, hR, True);
end;

Conclusão

Com poucas linhas de código, é possível criar forms com formatos personalizados no Delphi, deixando a interface mais moderna e interativa.

Posts Similares