Вниз
Скачать: CL | DM;

Переключение курсора мыши   Найти похожие ветки 

 
Переяслов Григорий ©   (2002-12-23 15:25) [0]

Уважаемые мастера. У меня на форме лежит 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;

Но в процессе "протаскивания" курсор мышки не меняется. В чем может быть проблемма?


 
TTCustomDelphiMaster ©   (2002-12-23 16:36) [1]

MouseDown и MouseUp события на нажатие кнопки мышки.
В object inspector установи
Chart.Cursor = crHandPoint;


 
Переяслов Григорий ©   (2002-12-23 16:57) [2]

Не подходит, курсор должен пеняться только на период нажатия кнопки мышки, например, при перетаскивании графика.


 
TTCustomDelphiMaster ©   (2002-12-23 18:40) [3]

Может такая штука подойдет?

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-24 11:10) [4]

Проблема на самом деле с TChart. Если я все эти обработчики вешаю, например, на панель, то все ОК. А если вешаю на TChart и при этом пытаюсь "протащить" график и при этом меняю курсор мыши, то он не меняется.


 
Переяслов Григорий ©   (2002-12-24 14:31) [5]

Еще точнее. Проблемы начинаются при разрешении скроллинга в TChart. Если скроллинга нет - все нормально.


 
Переяслов Григорий ©   (2002-12-25 11:25) [6]

Господа, кому интересно, посмотрите, как вопрос был решен:

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;

Всем успехов !



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
3-14894
Jdrm
2002-12-12 10:52
2003.01.06
Как можно узнать номер текущей записи?


1-15052
Separator
2002-12-25 07:53
2003.01.06
Работа с реестром


8-15170
step[B.M.]
2002-09-19 10:36
2003.01.06
КАК ДОБАВИТЬ В РЕСУРС MP3 И ПОТОМ ВОСПРОИЗВЕСТИ ЕГО ?


4-15357
Cosmic
2002-11-16 21:37
2003.01.06
Как добавить контрол?


14-15275
Дремучий
2002-12-16 23:20
2003.01.06
Форум от Дремучего...




   Наверх