Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-15313
J_S
2002-12-18 14:32
2003.01.06
SQL & dbExpress


7-15342
soware
2002-10-08 09:10
2003.01.06
Дата BIOS в NT


6-15196
X-shadow
2002-11-08 18:01
2003.01.06
вот


1-15086
KME
2002-12-21 23:40
2003.01.06
Преобразование String в Integer в Turbo Pascal


1-15131
Азеев Анрей
2002-12-22 23:09
2003.01.06
Перенаправление вывода внешнего консольного приложения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский