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

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

Как можно отслеживать изменения вида курсора? [D7, XP]


worldmen ©   (2011-04-09 12:10:00) 

Я перемещаю курсор программно и мне нужно определить, что курсор находится над текстовым полем в другой проге. При этом курсор изменяет  свой вид. Или можно как-то по другому?


clickmaker   (2011-04-11 12:14:00) [1]

> как определить что он над формой для ввода текста?

см. [2]


worldmen   (2011-04-11 12:13:00) [2]

Это и все что получается оттуда вытянуть, но как определить что он над формой для ввода текста?
procedure TForm1.Timer2Timer(Sender: TObject);
var CI: TCursorInfo;
begin
 CI.cbSize := SizeOf(CI);
 GetCursorInfo(CI);
 Image1.Picture.Icon.Handle := CI.hCursor; //вид курсора
 Label1.Caption:=IntToStr(Ci.hCursor); //номер курсора
 Label2.Caption:='X='+IntToStr( CI.ptScreenPos.X);
 Label3.Caption:='Y='+IntToStr( CI.ptScreenPos.Y);
end;


clickmaker   (2011-04-11 11:09:00) [3]

> как я определю, что курсор изменился на текстовый

GetCursorInfo ?


worldmen   (2011-04-11 08:46:00) [4]

Непонимаю, как я определю, что курсор изменился на текстовый с этими функциями?
function WindowFromPoint(Point: TPoint): HWnd; - Опpеделяет окно, содеpжащее указанную точку.
function GetCursorPos(var Point: TPoint); - Считывает экpанные кооpдинаты текущего положения куpсоpа.


clickmaker   (2011-04-09 15:22:00) [5]

> нужно определить, что курсор находится над текстовым полем
> в другой проге

GetCursorPos + WindowFromPoint


worldmen   (2011-04-09 14:03:00) [6]

Написал такой код, а он выводит только значение C=0 (т.е. crDefault), при этом курсор был в виде crSizeNESW - изменение размера. Что не так?
Var C : TCursor;
begin
 C:= Screen.Cursor;
 case C of
   crDefault  : Memo1.Lines.Add(' обычно стрелка');
   crArrow    : Memo1.Lines.Add(' стрелка ');
   crCross    : Memo1.Lines.Add(' плюсик ');
   crIBeam   : Memo1.Lines.Add(' текст ');
   crSizeNESW : Memo1.Lines.Add(' изменение размера ');
   crSizeNS  : Memo1.Lines.Add(' изменение размера ');
   crSizeNWSE : Memo1.Lines.Add(' изменение размера');
 end


Наверх

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