Главная страница
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.041 c
1-1117436537
juice
2005-05-30 11:02
2005.06.14
Автозапуск, системная политика Win2000


6-1111579314
Radgar
2005-03-23 15:01
2005.06.14
SendBuf


3-1115289576
Борис72Ф
2005-05-05 14:39
2005.06.14
кирилица в IB


1-1117521709
imm
2005-05-31 10:41
2005.06.14
Где искать буфер TBitmap


14-1117085089
Ozone
2005-05-26 09:24
2005.06.14
Построение грамматик (задолбали заочники)