Posição do Componente
Como faço para descobrir a posição (x,y) do componente em relação ao form.
obs.: Lembrando que se ele estiver dentro de TPanel por exemplo, a propriedade Top estará em relação ao Tpanel, e assim por diante.
Tentei pegar pegar o parent do Componente, deu certo, mas quando o componente, está dentro de apenas um.
Se ele tiver dentro de um Tpanel, esse Tpanel esta dentro de outro, ja complica, pois teria que pegar o parente duas vezes.
obs.: Lembrando que se ele estiver dentro de TPanel por exemplo, a propriedade Top estará em relação ao Tpanel, e assim por diante.
Tentei pegar pegar o parent do Componente, deu certo, mas quando o componente, está dentro de apenas um.
Se ele tiver dentro de um Tpanel, esse Tpanel esta dentro de outro, ja complica, pois teria que pegar o parente duas vezes.
Sistemald
Curtidas 0
Respostas
Massuda
18/02/2005
Uma forma é converter a posição do componente para coordenadas da tela e converter essa nova posição para as coordenadas relativas ao form. Por exemplo (não testei):
function GetTopLeft(AForm: TForm; AControl: TControl): TPoint; begin Result := AForm.ScreenToClient(AControl.ClientToScreen(Point(AControl.Left, AControl.Top))); end;
GOSTEI 0
Paulo_amorim
18/02/2005
Olá
Pode-se tentar fazer (adapte o valor inicial de C, se necessário)
Espero que ajude
Até+
Pode-se tentar fazer (adapte o valor inicial de C, se necessário)
function RetornaTop( controle: TControl): Integer; var c: TControl; begin c := controle; Result := c.Top; while not (c.Parent is TForm) do begin c := c.Parent; Inc(Result, c.Top); end; end;
Espero que ajude
Até+
GOSTEI 0
Beppe
18/02/2005
Paulo, vc não levou em conta a espessura das bordas.
GOSTEI 0
Sistemald
18/02/2005
Valeu novamente galera, agora acho que me viro.
Estou terminando um componente tipo Lookcombobox, porém muito mais configuravél, e a lista é preenchida por query embutida no componente.
em breve postarei aqui no forum.
Estou terminando um componente tipo Lookcombobox, porém muito mais configuravél, e a lista é preenchida por query embutida no componente.
em breve postarei aqui no forum.
GOSTEI 0
Paulo_amorim
18/02/2005
Olá
Eu pensei nisso. Ia incluir um teste no tamanho tanto de Border quanto Bevel, mas deixei quieto...
Até+
Paulo, vc não levou em conta a espessura das bordas.
Eu pensei nisso. Ia incluir um teste no tamanho tanto de Border quanto Bevel, mas deixei quieto...
Até+
GOSTEI 0