![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Курсор мыши [D6, XP]
Jimmy © (2008-08-26 23:37:00)Почему процедура
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Cursor:=crHourGlass;
end;
изменяет курсор мыши только когда наступило MouseUp?
Заранее спасибо.
Jimmy (2008-08-27 22:16:00) [1]Screen.Cursor:=crHourGlass; помогло. Всем спасибо.
ЛшдлуттнСфе (2008-08-27 05:18:00) [2]Колесико - это колесико. Никакого, кроме механического, отношения к средней кнопки не имеет.
Германн (2008-08-27 01:52:00) [3]
> Deltas © (27.08.08 01:31) [5]
>
>
> > А вот правая (насчет средней ничего не знаю)...
>
> Это колесико мышки. Им тоже можно кликать.
Что такое "средняя кнопка мышки" я знаю.
Deltas (2008-08-27 01:31:00) [4]
> А вот правая (насчет средней ничего не знаю)...
Это колесико мышки. Им тоже можно кликать.
Deltas (2008-08-27 01:30:00) [5]Кстати, между этими двумя вариантами есть разница. Предположим на форме размещена кнопка TButton. Если использовать Screen.Cursor := crHourGlass, курсор изменится и над формой и над кнопкой. Если использовать выше описанный метод переопределения обработчика, курсор изменится только лишь над формой, над кнопкой он останется прежним.
Германн (2008-08-27 01:28:00) [6]
> Видимо, какая-то ошибка в текстах модулей Delphi. Обрати
> внимание, что курсор изменяется после отпускания мыши только
> для левой кнопки. Для средней и правой он изменяется сразу.
>
>
Врядли это ошибка. Скорее дело в том, что левая кнопка по стандарту строго задействована только на тех контролах, которые можно "кликнуть" или "нажать". А вот правая (насчет средней ничего не знаю)...
Deltas (2008-08-27 01:22:00) [7]
> Почему процедура
>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:11:00) [8]
> Cursor:=crHourGlass;
А если попробовать написать
Screen.Cursor:=crHourGlass;