Array
(
)

Menu em Botão

Paullsoftware
   - 01 fev 2006

Ai galera bom dia...

Alguém pode me ajudar numa dúvida que ta acabando comigo...
Como eu faço para criar um menu em um botão tipo, no windows xp quando clicamos no botão ´Modo de Exibição´ ele mostra alguns itens em um menu, como faço pra fazer um igual aquel?


Massuda
   - 01 fev 2006

Esse botão que você citou é do TToolbar (aba win32). Não sei se existe um botão ´avulso´ (ou seja, que não esteja ligado a algum outro componente) que faça isso.


Paullsoftware
   - 01 fev 2006


Citação:
Esse botão que você citou é do TToolbar (aba win32). Não sei se existe um botão ´avulso´ (ou seja, que não esteja ligado a algum outro componente) que faça isso.


não, é button ou bitbtn ....


Massuda
   - 01 fev 2006


Citação:
não, é button ou bitbtn ....
Não entendi. O que eu escrevi é que o botão que você viu é um botão gerado pelo TToolbar com estilo tbsDropdown mais um TPopupMenu ligado na propriedade DropdownMenu do botão.


Paullsoftware
   - 01 fev 2006


Citação:

Citação:
não, é button ou bitbtn ....
Não entendi. O que eu escrevi é que o botão que você viu é um botão gerado pelo TToolbar com estilo tbsDropdown mais um TPopupMenu ligado na propriedade DropdownMenu do botão.


xiiiii foi mal massuda desculpa, mais vc sabe como faço pra gerar um menu semelhante, não quero usar toolbar quero criar em um botão normal mesmo...


Michael
   - 01 fev 2006

Olá!

A classe TPopupMenu possui o método PopUp, que server para exibir o menu em uma determinada posição da tela.


Citação:
procedure Popup(X, Y: Integer);


É importante ressaltar que X e Y são as coordenadas relativas à tela, e não do form onde o controle está. Para obter esses valores, deve-se usar o método ClientToScreen, da classe TControl , que faz a ´transladação´ das coordenadas.

Então, para exibir corretamente o menu, vc pode usar o código abaixo:

#Código

var
P1, P2: TPoint;
begin
P1.X := Button.Left;
P1.Y := Button.Top + Button.Height;
P2 := ClientToScreen(P1);
PopupMenu.PopUp(P2.X, P2.Y);
end;


[]´s


Paullsoftware
   - 01 fev 2006

valeu Michel funcionou direitinho... :lol:


Michael
   - 01 fev 2006

Se vc for fazer isso em vários botões talvez seja interessante criar um componente com a funcionalidade embutida.

Ah, e meu nome é Michael, e não Michel... ;-)

[]´s


Paullsoftware
   - 06 fev 2006


Citação:
Se vc for fazer isso em vários botões talvez seja interessante criar um componente com a funcionalidade embutida.

Ah, e meu nome é Michael, e não Michel... ;-)

[]´s



OK!