Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема при вставке текста из буффера обмена в Memo [D7, WinXP]


FunkyByte ©   (2005-10-29 18:29:00) 

Доброго всем времени суток, уважаемые мастера. Как можно сделать так, чтобы при вставке текста из буфера обмена в Memo через всплывающее меню текст вставлялся там, где находился курсор мыши при вызове всплывающего меню, а не там, где в этот момент находился текстовый курсор? Заранее благодарен.


FunkyByte   (2005-10-30 22:14:00) [1]


> Что значит вручную?

Вручную переставить текстовый курсор - это значит подвести курсор мыши к тому месту, куда надо переставить текстовый курсор, и щёлкнуть по левой почке мышки :-)


> Вот так, например, некошерно?

То, что надо. Большое спасибо.


Джо   (2005-10-30 04:21:00) [2]


> [2] FunkyByte ©   (30.10.05 01:16)
> А как это сделать? (вручную не предлагать)

Что значит вручную? Вот так, например, некошерно?

procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);

 function CharFromPos: Dword;
 var
   Pt: DWORD;
 begin
   // Low word - X, high word - Y
   Pt := (Y * $10000) or (X and $FFFF);
   Result := (SendMessage((Sender as TMemo).Handle,EM_CHARFROMPOS,0,Pt));
   // charpos in low word
   Result := Result and $0000FFFF;
 end;

begin
 if Button = mbRight then
   (Sender as TMemo).SelStart := CharFromPos
end;


FunkyByte   (2005-10-30 01:16:00) [3]

А как это сделать? (вручную не предлагать)


изобретатель_   (2005-10-29 22:10:00) [4]

Перед вызовом контекстного меню  переставляй текстовый курсор в нужное место:)


Наверх

Титульная страница Поиск, карта сайта Написать письмо