![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Переключение курсора мыши [D5, Win95/98, Win2k, WinXP]
Переяслов Григорий © (2002-12-23 15:25:00)Уважаемые мастера. У меня на форме лежит Chart, на нем строится диаграмма, которая должна скроллироваться по горизонтали. В обработчиках собыитй я пишу следующее:
procedure TFormSpectr.ChartMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
. . .
Chart.Cursor := crHandPoint;
end;
procedure TFormSpectr.ChartMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
. . .
Chart.Cursor := crDefault;
end;
Но в процессе "протаскивания" курсор мышки не меняется. В чем может быть проблемма?
Переяслов Григорий (2002-12-25 11:25:00) [1]Господа, кому интересно, посмотрите, как вопрос был решен:
procedure TFormSpectr.ChartMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
. . .
If Button = mbRight then begin
Chart.OriginalCursor := crHandPoint;
Chart.Cursor := crHandPoint;
Screen.Cursor := crHandPoint;
end;
end;
procedure TFormSpectr.ChartMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
If Button = mbRight then begin
Chart.OriginalCursor := crDefault;
Chart.Cursor := crDefault;
Screen.Cursor := crDefault;
end;
end;
Всем успехов !
Переяслов Григорий (2002-12-24 14:31:00) [2]Еще точнее. Проблемы начинаются при разрешении скроллинга в TChart. Если скроллинга нет - все нормально.
Переяслов Григорий (2002-12-24 11:10:00) [3]Проблема на самом деле с TChart. Если я все эти обработчики вешаю, например, на панель, то все ОК. А если вешаю на TChart и при этом пытаюсь "протащить" график и при этом меняю курсор мыши, то он не меняется.
TTCustomDelphiMaster (2002-12-23 18:40:00) [4]Может такая штука подойдет?
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
P: TPoint;
Up: TMouseEvent;
begin
Button1.Cursor := crHandPoint;
Up := Button1.OnMouseUp;
Button1.OnMouseUp := nil;
Button1.Perform(WM_LBUTTONUP, 0, Longint(PointToSmallPoint(ScreenToClient(Point(X,Y)))));
Button1.OnMouseUp := Up;
end;
procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Button1.Cursor := crDefault;
end;
Переяслов Григорий (2002-12-23 16:57:00) [5]Не подходит, курсор должен пеняться только на период нажатия кнопки мышки, например, при перетаскивании графика.
TTCustomDelphiMaster (2002-12-23 16:36:00) [6]MouseDown и MouseUp события на нажатие кнопки мышки.
В object inspector установи
Chart.Cursor = crHandPoint;