Menu em Botão
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?
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
Curtidas 0
Respostas
Massuda
01/02/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.
GOSTEI 0
Paullsoftware
01/02/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.
não, é button ou bitbtn ....
GOSTEI 0
Massuda
01/02/2006
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.GOSTEI 0
Paullsoftware
01/02/2006
[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...
GOSTEI 0
Michael
01/02/2006
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.
É 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:
[]´s
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
GOSTEI 0
Paullsoftware
01/02/2006
valeu Michel funcionou direitinho... :lol:
GOSTEI 0
Michael
01/02/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 é [b:442b054c80]Michael[/b:442b054c80], e não Michel... ;-)
[]´s
Ah, e meu nome é [b:442b054c80]Michael[/b:442b054c80], e não Michel... ;-)
[]´s
GOSTEI 0
Paullsoftware
01/02/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 é [b:f17473b718]Michael[/b:f17473b718], e não Michel... ;-)
[]´s
OK!
GOSTEI 0