Главная страница
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.018 c
1-14986
Anton Tsvilikh
2002-12-23 21:41
2003.01.06
Вид кнопки вверху окна


14-15314
alex134
2002-12-18 18:52
2003.01.06
ищу некую программу...


4-15346
Lexa1900
2002-11-17 21:21
2003.01.06
Как отловить нажатие кнопки?


1-15138
hp1100
2002-12-20 20:08
2003.01.06
Загрузка ассоциированных файлов в уже запущенную программу


14-15263
Nick-From
2002-12-16 18:18
2003.01.06
Транслятор Basic в Pascal