Главная страница
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.47 MB
Время: 0.028 c
4-1113892854
Упсс
2005-04-19 10:40
2005.06.14
Уникальный Explorer


14-1117177400
juice
2005-05-27 11:03
2005.06.14
Разрешение адресов


14-1116690237
Nikolay M.
2005-05-21 19:43
2005.06.14
Кто помнит, как добраться до места прошлогодней MMP?


1-1117479425
Karlson
2005-05-30 22:57
2005.06.14
Признак конца строки в текстовом файле


1-1117280052
LubaAL
2005-05-28 15:34
2005.06.14
Фон формы