1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
   | private   
        Control_Bloc:TWinControl;  // Pour récupérer le composant sous la souris
         // Pour Popup utilise la position de la souris pour récupérer le Composant Bloc pointé
        // utilisé pour neutraliser un item avant l'affichage du popup  
 
// **************************************************
procedure TForm1.PopupMenu_Onglet_WindowsPopup(Sender: TObject);
// Popup Windows
Var Panel_Compo : Tcomponent;
  begin
     {$IFDEF Windows}
      Recupere_Control_Bloc_Solution_Souris(Sender,Panel_Compo);
     {$ENDIF}
  end;
// ************************************************** 
procedure TForm1.Recupere_Control_Bloc_Solution_Souris(Sender: TObject;Var Panel_Compo : Tcomponent);
// Récupère Control_Bloc : Tcomponent
Var
  ACursorPos: TPoint;
  AHandle: HWND;
begin
   {$IFDEF Windows}
  // ----------- Solution fonctionne en Windows ------------------
 // Récupérer les coordonnées du coin supérieur du popup :
  if GetCursorPos(ACursorPos) then  // Récupérer les coordonnées
    begin
     AHandle := WindowFromPoint(ACursorPos); // Chercher un Handle
     if AHandle <> 0 then
       begin
       Control_Bloc:=FindControl(AHandle ); // Chercher le composant sous la souris
          if Control_Bloc<>nil then
          begin  // Composant trouvé : neutraliser Item
              If Copy(Control_Bloc.Name,1,9)<>'ScrollBox' Then MenuItem_Modifier_Nom_Fichier1.Enabled:=True
             Else MenuItem_Modifier_Nom_Fichier1.Enabled:=False;
             .........................................................
          End;
     end;
end;
   {$ENDIF}
  end;
// ************************************************** | 
Partager