курсор миші
чому процедура
procedure TForm1.FormMouseDown (Sender: TObject; Button: TMouseButton;
# XA0; Shift: TShiftState; X, Y: Integer);
begin
Cursor: = crHourGlass;
end;
змінює курсор миші тільки коли настав MouseUp?
Заздалегідь дякую.
> Cursor: = crHourGlass;
А якщо спробувати написати
Screen.Cursor: = crHourGlass;
> Чому процедура
> Procedure TForm1.FormMouseDown (Sender: TObject; Button:
> TMouseButton;
> # XA0; Shift: TShiftState; X, Y: Integer);
> begin
> Cursor: = crHourGlass;
> End;
> Змінює курсор миші тільки коли настав MouseUp?
Мабуть, якась помилка в текстах модулів Delphi. Зверни увагу, що курсор змінюється після відпускання миші тільки для лівої кнопки. Для середньої і правої він змінюється відразу.
> А якщо спробувати написати
> Screen.Cursor: = crHourGlass;
Це допомагає. Є ще один варіант, більш складний: перевизначити обробник події WM_LEFTBUTTONDOWN:
unit Unit1;
uses
# XA0; Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
# XA0; TForm1 = class (TForm)
# XA0; private
# XA0; # XA0; procedure OnLeftButtonDown (var Msg: TMsg); message WM_LBUTTONDOWN;
# XA0; public
# XA0; # XA0;
# XA0; end;
var
# XA0; Form1: TForm1;
procedure TForm1.OnLeftButtonDown (var Msg: TMsg);
begin
# XA0; Cursor: = crHourGlass;
end;
> Мабуть, якась помилка в текстах модулів Delphi. Зверни
> Увагу, що курсор змінюється після відпускання миші тільки
> Для лівої кнопки. Для середньої і правої він змінюється відразу.
>
>
Навряд це помилка. Скоріше справа в тому, що ліва кнопка за стандартом строго задіяна тільки на тих контроль, які можна "кликнути" або "натиснути". А от права (щодо середньої нічого не знаю).
До речі, між цими двома варіантами є різниця. Припустимо на формі розміщена кнопка TButton. Якщо використовувати Screen.Cursor: = crHourGlass, курсор зміниться і над формою і над кнопкою. Якщо використовувати вище описаний метод перевизначення обробника, курсор зміниться тільки над формою, над кнопкою він залишиться тим самим.
> А от права (щодо середньої нічого не знаю).
Це коліщатко мишки. Їм теж можна клікати.
Коліщатко - це коліщатко. Ніякого, крім механічного, відношення до середньої кнопки не має.
Screen.Cursor: = crHourGlass; допомогло. Всім дякую.