Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.06;
Скачать: 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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.016 c
14-15296
Sir Alex
2002-12-15 14:36
2003.01.06
Новая версия клиента DMFC (1.1.007b)


7-15340
Дмитрий К.К.
2002-10-25 15:58
2003.01.06
Добавить в избранное: Internet Explorer


1-15096
Napoleonn
2002-12-22 14:37
2003.01.06
Вопрос по twebbrowser. Подскажите, пожалуйста!


4-15350
Карлсон
2002-11-17 18:40
2003.01.06
антихук.


8-15174
Atoll
2002-04-24 17:22
2003.01.06
Как отловить нажатие клавиши с мультимедийной клавиатуры