procedure TForm1.CheckPulsante(Sender: TObject); var tPulsante: TSpeedButton; X, Y : integer; begin //in base al pulsante setta il PopUpmenu relativo if Sender = SpeedButton1 then begin mnuAttivo := PopUpMenu1; tPulsante := SpeedButton1; //assegna TSpeedButton a tPulsante end else if Sender = SpeedButton2 then begin mnuAttivo := PopUpMenu2; tPulsante := SpeedButton2; end else if Sender = SpeedButton3 then begin mnuAttivo := PopUpMenu3; tPulsante := SpeedButton3; end;
if mnuPrecedente = mnuAttivo then begin mnuPrecedente := nil; mnuAttivo.Close; //chiude il menu presente end else begin //fissa posizione pulsante X := tPulsante.ClientOrigin.X;
//per posizionare sotto il pulsante si agginge l'altezza dello stesso Y := tPulsante.ClientOrigin.Y + SpeedButton3.Height; CheckMenuAttivo(mnuAttivo, X, Y); mnuPrecedente := mnuAttivo; end; end;
si va a verificare se il menu visualizzato e' diverso da quello assegnato al Pulsante e si posiziona il Menu con PopUp(X,Y), dove X = posizione orizzontale del Pulsante Y = posizione verticale del Pulsante
procedure TForm1.CheckMenuAttivo(var MenuAttivo: TPopUpMenu; var X, Y: integer); begin if mnuPrecedente mnuAttivo then MenuAttivo.Popup(X, Y) // visualizza PopUpMenu else mnuPrecedente := mnuAttivo; end;
inserire un Form 3 TSpeedButton, e 3 TPopUpMenu dichiarare mnuAttivo, mnuPrecedente: TPopUpMenu;
About the author
Maverich registered at Italian community of Lazarus and Free Pascal on Novembre 20, 2011, 10:21:54 pm and has posted 134 posts in the boards since then. Last visit was Novembre 20, 2016, 08:23:41 pm.
Questo blog non rappresenta una testata giornalistica poiché viene
aggiornato senza alcuna periodicità. Non può pertanto considerarsi un
prodotto editoriale ai sensi della legge n. 62/2001.
Questo sito utilizza cookie, anche di terze parti, per offriti servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina, cliccando su un link o proseguendo la navigazione in altra maniera, acconsenti all’uso dei cookie.