Menu em Botão

01/02/2006

0

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?


Paullsoftware

Paullsoftware

Responder

Posts

01/02/2006

Massuda

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.


Responder

01/02/2006

Paullsoftware

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 ....


Responder

01/02/2006

Massuda

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.


Responder

01/02/2006

Paullsoftware

[quote:27e3717275=´PaullSoftware´]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.[/quote:27e3717275]

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...


Responder

01/02/2006

Michael

Olá!

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

[b:ad6dd3fdb0]procedure[/b:ad6dd3fdb0] Popup(X, Y: Integer);


É importante ressaltar que [b:ad6dd3fdb0]X[/b:ad6dd3fdb0] e [b:ad6dd3fdb0]Y[/b:ad6dd3fdb0] 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 [b:ad6dd3fdb0]ClientToScreen[/b:ad6dd3fdb0], da classe [b:ad6dd3fdb0]TControl [/b:ad6dd3fdb0] , que faz a ´transladação´ das coordenadas.

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

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


Responder

01/02/2006

Paullsoftware

valeu Michel funcionou direitinho... :lol:


Responder

01/02/2006

Michael

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

Ah, e meu nome é [b:442b054c80]Michael[/b:442b054c80], e não Michel... ;-)

[]´s


Responder

06/02/2006

Paullsoftware

Se vc for fazer isso em vários botões talvez seja interessante criar um componente com a funcionalidade embutida. Ah, e meu nome é [b:f17473b718]Michael[/b:f17473b718], e não Michel... ;-) []´s



OK!


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar