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