Форум: "Основная";
Текущий архив: 2003.01.06;
Скачать: [xml.tar.bz2];
ВнизПереключение курсора мыши Найти похожие ветки
← →
Переяслов Григорий (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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.04 c