Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.14;
Скачать: CL | DM;

Вниз

Работа с PopupMenu   Найти похожие ветки 

 
pavel_guzhanov ©   (2005-05-26 13:27) [0]

Народ, что-то я туплю, но никак не могу сделать, чтобы при клике на пункте всплывающего меню "Вставить" содержимое буфера обмена вставилось в тот компонент(напимер в Memo) над которым вызвали это самое меню. Подскажите, как это сделать...


 
-=XP=- ©   (2005-05-26 13:39) [1]

С одной стороны, TMemo имеет собственное PopupMenu. Там и пункт меню "Вставить".

С другой стороны, если речь не только, и не столько про TMemo, то:

procedure TForm1.MenuInsertClick(Sender: TObject);
begin
 TMemo(PopupMenu.PopupComponent).PasteFromClipboard;
end;

procedure TForm1.MemoMouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
var
 P: TPoint;
begin
 if (Button = mbRight) then
 begin
   PopupMenu.PopupComponent := TMemo(Sender);
   P := Memo.ClientToScreen(Point(X, Y));
   PopupMenu.Popup(P.X, P.Y);
 end;
end;


P.S. Не обессудьте, если что-то лишнее. Но где-то в этом направлении.


 
Чапаев ©   (2005-05-26 13:48) [2]

if Sender is (TControl что ли?) then
 (Sender as ...).PasteFromClipboard;


 
-=XP=- ©   (2005-05-26 13:50) [3]

Прошу прощения. На самом деле не совсем правильно написал.

procedure TForm1.MenuInsertClick(Sender: TObject);
var
 C: TComponent;
begin
 C := PopupMenu.PopupComponent;
 if Assigned(C) and (C is TMemo) then
   TMemo(C).PasteFromClipboard;
 // Другие действия, если не TMemo, а какой-то другой компонент
end;

procedure TForm1.MemoMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
 P: TPoint;
begin
 if (Button = mbRight) and (Sender.InheritsFrom(TControl)) then
 begin
   PopupMenu.PopupComponent := TComponent(Sender);
   P := TControl(Memo).ClientToScreen(Point(X, Y));
   PopupMenu.Popup(P.X, P.Y);
 end;
end;


 
-=XP=- ©   (2005-05-26 13:52) [4]

Ну куда же я спешу?! :(

P := TControl(Sender).{...}

P.S. Sorry. :)


 
pavel_guzhanov ©   (2005-05-26 14:04) [5]

Спасибо большое!!!!!!



Страницы: 1 вся ветка

Текущий архив: 2005.06.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.055 c
8-1109168540
Fenik
2005-02-23 17:22
2005.06.14
Аппроксимация экспериментальных данных.


14-1117126429
Uncle Archi
2005-05-26 20:53
2005.06.14
Глюк в МФ 1.2


4-1114420136
}|{yk
2005-04-25 13:08
2005.06.14
Как зарегистрировать файлы для открытия их определенной программо


6-1111596524
redlord
2005-03-23 19:48
2005.06.14
не отрабатывает try clientsocket.Open; finally


1-1117451915
Mouserx
2005-05-30 15:18
2005.06.14
Использование inherited