GARANTIR DESCONTO

Fórum Acionar Popup menu #327096

09/08/2006

0

Olá Pessoal.... estou tentando fazer acionar um popup menu.... , na realidade até consegui fazer acionar... mais tem um probleminha...

eu quero fazer um esquema igual ao botão iniciar do windows... onde o usuário clica no botão e sobre um menu com as opções... até conseguir criar o menu e fazer ele aparece porém ah um errinho....
eu uso o seguinte código para acionar o popup

procedure TFPcrCms.btF4Click(Sender: TObject);
var P1 : TPoint;
begin
   P1.X := 0;
   P1.Y := 0;
   P1 := btF4.ClientToScreen(P1);
   PopInfo.PopUp(P1.X, P1.Y);
end;

até ai blz..ele aciona o popup ... mais dependendo a posição que está o botão... ao inves do menu sair em cima do botão... como o botão iniciar.. ele sai embaixo....

pelos teste q fiz aqui.. isso ocorre quando tem espaço suficiente na tela para abrir o menu abaixo do botão..... se não tiver espaço... ele abre na parte de cima do botão...

mais como jah disse....quero q fique igual ao botão iniciar do windows. .. então presciso q o menu seja exibido na parte do cima do botão...

alguem tem alguma idéia...
estou no aguardo..
obrigado..


Thiago Coleti

Thiago Coleti

Responder

Posts

10/08/2006

Night_man

antes de disparar o popup descubra o tamanho que ele vai ocopar na tela

o Height Dele voce descobre com o numeros de items * ´o tamanho da fonte´, assim como o width, que o maior texto * ´o tamanho da fonte´

com base nisso voce pode calcular a posicao certa para popar o item


Responder

Gostei + 0

10/08/2006

Thiago Coleti

blz Night_Man..

consegui descobrir os valores aki e funcionou....... ia meio no chutodromo mais funcionou e ficou

procedure TFPcrCms.btF4Click(Sender: TObject); 
var P1, P2 : TPoint; 
begin 
   P1.X := 0; 
   P1.Y := "(valor do height do popup)"; 
   P2 := btF4.ClientToScreen(P1); 
   PopInfo.PopUp(P2.X, P2.Y); 
end; 


valew pela ajuda...
obrigado


Responder

Gostei + 0

11/08/2006

Night_man

eh isso ai, ontem eu na tinha achado o codigo q fazia isso,
mas pra descobrir o tamanho do height eu fiz


Items.Count * 13 + 5 (13 era a altura da fonte e 5 um numero magico, eh um espaco de folga)


Responder

Gostei + 0

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

Aceitar