Поддержка / Donate
 

WebMoney

Яндекс.Деньги

SMS.Копилка
Деньги@Mail.ru
Rupay
E-gold
PayPal

 

Благодарю за поддержку!

Лента RSS - Новости сайта Новости сайта
Лента RSS - Новости форума Новости форума
Добавить в закладки и поделиться Bookmark and Share

 

Архив исходников

 


Automatic translation

 
English German French
Italian Spanish Portuguese
Greece Japan Chinese
  Korean  

  

 

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Найти позицию каретки в системе

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

function GetCaretPosition(var APoint: TPoint): Boolean;
 var w: HWND;
   aID, mID: DWORD;
 begin
   Result:= False;
   w:= GetForegroundWindow;
   if w <> 0 then
   begin
     aID:= GetWindowThreadProcessId(w, nil);
     mID:= GetCurrentThreadid;
     if aID <> mID then
     begin
       if AttachThreadInput(mID, aID, True) then
       begin
         w:= GetFocus;
         if w <> 0 then
         begin
           Result:= GetCaretPos(APoint);
           Windows.ClientToScreen(w, APoint);
         end;
         AttachThreadInput(mID, aID, False);
       end;
     end;
   end;
 end;


 //Small demo: set cursor to active caret position 
procedure TForm1.Timer1Timer(Sender: TObject);
 var
   Pt: TPoint;
 begin
   if GetCaretPosition(Pt) then
   begin
     ListBox1.Items.Add(Format('Caret position is %d %d', [Pt.x, Pt.y]));
     SetCursorPos(Pt.X, Pt.Y);
   end;
 end;



Источник - Проект "Delphi World" © Выпуск 2002 - 2004
Автор проекта: Акулов Николай



   Rambler's Top100             Яндекс цитирования