Карта сайтаСсылкиКонтакты

Как узнать содержимое компонента, над которым находится мышь

PDF Печать
Статьи

Для примера поместить два TLabel на свою форму Delphi (Label1 и Label2). Поместите TPopupMenu (PopupMenu1) на форму и присоедините его к форме, установив свойство формы PopupMenu равным PopupMenu1. Не добавляйте никаких пунктов в меню. Также добавьте два компонента TEdit и TMemo (для примера) и назначьте им свойства Text. Далее поместите этот код в событие OnPopup компонента PopupMenu1.

В Label1 будет отображать имя компонента, на котором щелкнули правой кнопкой мыши, а Label2 его содержимое.


procedure TForm1.PopupMenu1Popup(Sender: TObject);
var
   Cur : TPoint;
begin
   { Только для компонентов, которые могут получать фокус }
   { получаем положение мыши }
   GetCursorPos(Cur);
   { получаем имя управления, над которым мышь }
   Label2.Caption:= FindControl(WindowFromPoint( Cur )).Name;
   { Если это TEdit или TMemo, получаем их содержимое }
   if FindControl(WindowFromPoint( Cur )).ClassType =TEdit then
      Label1.Caption:=TEdit(FindControl(WindowFromPoint( Cur ))).Text;
   if FindControl(WindowFromPoint( Cur )).ClassType =TMemo then
      Label1.Caption:=TMemo(FindControl(WindowFromPoint( Cur ))).Text;
end;

 

Добавить комментарий


Защитный код
Обновить