wllf 2 Denunciar post Postado Novembro 9, 2010 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
Anderson Nunes 0 Denunciar post Postado Novembro 9, 2010 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
wllf 2 Denunciar post Postado Novembro 9, 2010 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