Главная страница
    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.45 MB
Время: 0.036 c
14-1116877897
Yegorchic
2005-05-23 23:51
2005.06.14
Описание программных средств, для написания сайтов


1-1117512723
Layner
2005-05-31 08:12
2005.06.14
Интересная особенность MonthCalendar, если стоит Multiselect=True


3-1115362448
Scorpio
2005-05-06 10:54
2005.06.14
Копирование БД и переименовка полей.


6-1111859936
serg128
2005-03-26 20:58
2005.06.14
Как закачать файл с ftp сервера?


14-1116644228
boriskb
2005-05-21 06:57
2005.06.14
Почуствуй себя богатым :)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский