Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

wllf

Componente TPanel

Recommended Posts

Bom dia pessoal, desenvolvi um componente descendente do TPanel eu o chamo TPanelRedondo ele simplesmente tem extremidades arredondadas conforme o angulo que eu seleciono, bom até aí normal funciona muito bem nos forms, foi instalado perfeitamente na paleta de componentes, mas quando eu aumento o tamanho do painel com o mouse o componente não muda o tamanho no form, ele só aualiza depois que eu altero uma propriedade ArredondaPanel de True para false e vice - versa. Será q está faltando algum procedimento de leitura de valores?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia pessoal, desenvolvi um componente descendente do TPanel eu o chamo TPanelRedondo ele simplesmente tem extremidades arredondadas conforme o angulo que eu seleciono, bom até aí normal funciona muito bem nos forms, foi instalado perfeitamente na paleta de componentes, mas quando eu aumento o tamanho do painel com o mouse o componente não muda o tamanho no form, ele só aualiza depois que eu altero uma propriedade ArredondaPanel de True para false e vice - versa. Será q está faltando algum procedimento de leitura de valores?

 

 

ele não muda o tamanho no form, como assim, voce não esta redimensionando com o mouse? ou ele não muda as bordas? O componente é free? caso sim coloca ai que tento arrumar, eu to trabalhando com componentes e to manjando bem.

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Anderson valeu pela resposta.

 

Eu redimensiono através do mouse, mas o componente não altera o tamanho do redimensionamento, ele só redimensiona após eu alterar a propriedade ArredondarPanel.

 

Esse componente sou eu quem estou desenvolvendo não vejo problemas em postar meu código, até pq já fui ajudado demais por esse fórum e o código não tem nada de mais também.

 

Segue o código:

 

unit PanelRedondo;

 

interface

 

uses

SysUtils, Classes, Controls, ExtCtrls, Graphics, Windows, Messages;

 

type

TPanelRedondo = class(TPanel)

private

FArredondar : Boolean;

FW : integer;

FH : integer;

constructor Create(Aowner: TComponent); override;

procedure SetArredondarPanel(value: Boolean);

procedure SetAngulo1(value: integer);

procedure SetAngulo2(value: integer);

protected

{ Protected declarations }

public

{ Public declarations }

published

property Angulo1 : integer read FH write SetAngulo1;

property Angulo2: integer read FW write SetAngulo2;

property ArredondaPanel: Boolean read FArredondar write SetArredondarPanel;

end;

 

procedure Register;

 

implementation

 

procedure Register;

begin

RegisterComponents('Standard', [TPanelRedondo]);

end;

 

{ TPanelRedondo }

 

constructor TPanelRedondo.Create(Aowner: TComponent);

begin

inherited Create(Aowner);

FArredondar := false;

FW := 40;

FH := 40;

end;

 

procedure TPanelRedondo.SetAngulo1(value: integer);

begin

if value > 0 then

begin

FH := value;

end;

end;

 

procedure TPanelRedondo.SetAngulo2(value: integer);

begin

if value > 0 then

begin

FW := value;

end;

end;

 

procedure TPanelRedondo.SetArredondarPanel(value: Boolean);

var

regiao : HRGN;

w, h : integer;

begin

w := FW;

h := FH;

if value = true then

begin

FArredondar := true;

regiao := CreateRoundRectRgn(0, 0, Width, Height, w, h);

SetWindowRgn(Handle, regiao, true);

end

else

begin

FArredondar := false;

regiao := CreateRoundRectRgn(0, 0, Width, Height, 0, 0);

SetWindowRgn(Handle, regiao, true);

end;

end;

end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.