TyttoSoft

DICAS | SOFTWARE | PROGRAMAÇÃO




Delphi - Arredondando cantos dos componentes.


Nesse exemplo iremos utilizar o seguintes componentes: 1 Panel Localizado no Tool Palette. 1 Edit Localizado no Tool Palette. 1 button Localizado no Tool Palette. Imagem de como ficou meu form com os componentes:
Em seguida clicamos em F12 e será direcionado para aba Code, onde iremos escrever nosso código. abaixo do código { TForm1 } iremos criar uma procedure. procedure Arredondarcantos(componente: TWinControl; Y:String); var BX: TRect; mdo: HRGN; begin with componente do begin BX := ClientRect; mdo := CreateRoundRectRgn(BX.Left, BX.Top, BX.Right, BX.Bottom, StrToInt(Y), StrToInt(Y)) ; Perform(EM_GETRECT, 0, lParam(@BX)) ; InflateRect(BX, - 4, - 4) ; Perform(EM_SETRECTNP, 0, lParam(@BX)) ; SetWindowRgn(Handle, mdo, True) ; Invalidate; end; end;
Com essa procedure você pode arredondar o Form, Edit, Panel, DBGrid etc... Agora clicamos em nosso Button1 no Object Inspector do button clicamos no Events a adicionamos Arredondarcantos(dbgrid1,edit1.Text); no evento OnClick Só testar, deixe seu comentário, duvidas e sugestões. Ao final irei explicar o código então vamos lá. Foi criada 2 variáveis uma do tipo TRect TRect define um retângulo. TRect representa as dimensões de um retângulo. As coordenadas são especificadas como quatro números inteiros separados representando os lados esquerdo, superior, direito e inferior, ou como dois pontos representando os locais dos cantos superior esquerdo e inferior direito. a segunda variável do tipo HRGN onde é o Identificador para a região que será modificada para representar a região da janela. Perform Perform para ignorar a fila de mensagens do Windows e enviar uma mensagem diretamente para o procedimento de janela do controle. InflateRect Aumenta um retângulo por um valor específico. InflateRect insufla a largura do retângulo subtraindo DXdo lado esquerdo e adicionando DXao lado direito . InflateRect insufla a Altura do retângulo subtraindo DYdo lado Superior e adicionando DYao lado Inferior . SetWindowRgn A função SetWindowRgn define a região da janela de uma janela. A região da janela determina a área dentro da janela onde o sistema permite o desenho. O sistema não exibe nenhuma parte de uma janela que esteja fora da região da janela. NOSSA UNIT FICOU ASSIM unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls; type TForm1 = class(TForm) Panel1: TPanel; Button1: TButton; Edit1: TEdit; Label1: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} { TForm1 } procedure Arredondarcantos(componente: TWinControl; Y:String); var BX: TRect; mdo: HRGN; begin with componente do begin BX := ClientRect; mdo := CreateRoundRectRgn(BX.Left, BX.Top, BX.Right, BX.Bottom, StrToInt(Y), StrToInt(Y)) ; Perform(EM_GETRECT, 0, lParam(@BX)) ; InflateRect(BX, - 4, - 4) ; Perform(EM_SETRECTNP, 0, lParam(@BX)) ; SetWindowRgn(Handle, mdo, True) ; Invalidate; end; end; procedure TForm1.Button1Click(Sender: TObject); begin Arredondarcantos(dbgrid1,edit1.Text); end; end.

17/04/2026 05:01 Delphi 10530


Política de privacidade

Utilizamos cookies e outras tecnologias semelhantes para melhorar a sua experiência no nosso site.

Ao continuar navegando, você declara que está de acordo com a nossa política de privacidade.

Copyright © TyttoSoft 2018 | Desenvolvido por www.TyttoSoft.com.br