Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.10.05;
Скачать: CL | DM;

Вниз

Курсор мыши   Найти похожие ветки 

 
Jimmy   (2008-08-26 23:37) [0]

Почему процедура
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
Cursor:=crHourGlass;
end;
изменяет курсор мыши только когда наступило MouseUp?
Заранее спасибо.


 
Германн ©   (2008-08-27 01:11) [1]


> Cursor:=crHourGlass;

А если попробовать написать
Screen.Cursor:=crHourGlass;


 
Deltas ©   (2008-08-27 01:22) [2]


> Почему процедура
> procedure TForm1.FormMouseDown(Sender: TObject; Button:
> TMouseButton;
>  Shift: TShiftState; X, Y: Integer);
> begin
> Cursor:=crHourGlass;
> end;

> изменяет курсор мыши только когда наступило MouseUp?

Видимо, какая-то ошибка в текстах модулей Delphi. Обрати внимание, что курсор изменяется после отпускания мыши только для левой кнопки. Для средней и правой он изменяется сразу.

> А если попробовать написать
> Screen.Cursor:=crHourGlass;

Это помогает. Есть еще один вариант, более сложный: переопределить обработчик события WM_LEFTBUTTONDOWN:
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
 TForm1 = class(TForm)
 private
   procedure OnLeftButtonDown(var Msg: TMsg); message WM_LBUTTONDOWN;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.OnLeftButtonDown(var Msg: TMsg);
begin
 Cursor := crHourGlass;
end;

end.


 
Германн ©   (2008-08-27 01:28) [3]


> Видимо, какая-то ошибка в текстах модулей Delphi. Обрати
> внимание, что курсор изменяется после отпускания мыши только
> для левой кнопки. Для средней и правой он изменяется сразу.
>
>

Врядли это ошибка. Скорее дело в том, что левая кнопка по стандарту строго задействована только на тех контролах, которые можно "кликнуть" или "нажать". А вот правая (насчет средней ничего не знаю)...


 
Deltas ©   (2008-08-27 01:30) [4]

Кстати, между этими двумя вариантами есть разница. Предположим на форме размещена кнопка TButton. Если использовать Screen.Cursor := crHourGlass, курсор изменится и над формой и над кнопкой. Если использовать выше описанный метод переопределения обработчика, курсор изменится только лишь над формой, над кнопкой он останется прежним.


 
Deltas ©   (2008-08-27 01:31) [5]


> А вот правая (насчет средней ничего не знаю)...

Это колесико мышки. Им тоже можно кликать.


 
Германн ©   (2008-08-27 01:52) [6]


> Deltas ©   (27.08.08 01:31) [5]
>
>
> > А вот правая (насчет средней ничего не знаю)...
>
> Это колесико мышки. Им тоже можно кликать.

Что такое "средняя кнопка мышки" я знаю.


 
ЛшдлуттнСфе   (2008-08-27 05:18) [7]

Колесико - это колесико. Никакого, кроме механического, отношения к средней кнопки не имеет.


 
Jimmy   (2008-08-27 22:16) [8]

Screen.Cursor:=crHourGlass; помогло. Всем спасибо.



Страницы: 1 вся ветка

Текущий архив: 2008.10.05;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
15-1219030948
Slider007
2008-08-18 07:42
2008.10.05
С днем рождения ! 17 августа 2008 воскресенье


3-1206800178
srgsoroka
2008-03-29 17:16
2008.10.05
зависание при запуске с расшаренного диска


11-1194225257
nsvi
2007-11-05 04:14
2008.10.05
Куда пропал OnEndEditLVItem?


2-1219848090
fokas
2008-08-27 18:41
2008.10.05
Передача управление стартовой формой процедурам модуля


15-1218713820
cyborg
2008-08-14 15:37
2008.10.05
Алгоритм Ахо-Карасик