![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Смена курсора
Муха © (2006-10-16 03:48:00)Вот ниже пример. Вопрос почему у формы курсор меняется сразу, а пайнтбокса нет? Это видно в заголовке формы. Как заставить TGraphicControl сменить курсор сразу? Пробовал:
PaintBox1.Perform(CM_CURSORCHANGED, 0, 0);
нет эфекта:(
var R: TRect;
procedure TForm1.FormCreate(Sender: TObject);
begin
R:=Rect(50, 50, 100, 100);
end;
procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if PtInRect(R, Point(X,Y)) then
Cursor := crHandPoint
else
Cursor := crDefault;
Caption := Format('X = %d - Y = %d',[X,Y]);
end;
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
PaintBox1.Canvas.Rectangle(R);
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
Canvas.Rectangle(R);
end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if PtInRect(R, Point(X,Y)) then
Cursor := crHandPoint
else
Cursor := crDefault;
Caption := Format('X = %d - Y = %d', [X,Y]);
end;
RASkov (2006-10-16 11:07:00) [1]> [17] Ketmar © (16.10.06 05:08)
Не.. не CDM:)) ненравится консоль. Я нашел - в ini.
Ketmar (2006-10-16 05:08:00) [2]реестр? .ini? CDM? %-)
RASkov (2006-10-16 04:40:00) [3]Сорри за офтоп.
А на [12] у кого есть ответ, а то раньше и не думал об имени нажимал сразу ответить, а теперь выбирать надо... Проклятая муха.
RASkov (2006-10-16 04:23:00) [4]> [15] ЮЮ © (16.10.06 04:22)
Спасибо, помогло.
ЮЮ (2006-10-16 04:22:00) [5]Изменяй курсор не у формы, а у экрана: Screen.Cursor, тогда меняется одинаково
RASkov (2006-10-16 04:21:00) [6]> [11] Ketmar © (16.10.06 04:19)
[12] а по вопросу есть что нибудь?
RASkov (2006-10-16 04:20:00) [7]Под именем Муха я тему завел. Как она попала в поле имя в DMClient низнаю:)
Теперь в выподающем списке есть и по умолчанию ставиться как ее убрать от туда?
Ketmar (2006-10-16 04:19:00) [8]>[9] RASkov 16-Oct-2006, 04:14
>Муха достала. Как ее убрать из DMClient'а?
???
RASkov (2006-10-16 04:18:00) [9]Ну что, нельзя никак известить TGraphicControl об изменении курсора?
RASkov (2006-10-16 04:14:00) [10]Муха достала. Как ее убрать из DMClient'а?
Муха (2006-10-16 04:11:00) [11]Т.е. исходя из R:=Rect(50, 50, 100, 100);
у формы по X на значениях 50 и 99 по Y на значениях 50 и 99
У пайнта по X на значениях 49,51 и 98,100 ну и тоже по Y
RASkov (2006-10-16 04:07:00) [12]> [6] ЮЮ © (16.10.06 04:04)
>
> > Вопрос почему у формы курсор меняется сразу, а пайнтбокса
>
> > нет?
>
>
> Вопрос то в чем? Не меняется совсем? Или не сразу?
> D7, WinXP - поведение одинаковое и най формой и над боксом
У меня тоже D7 и WinXP
Не сразу меняется если мышой медленно двигать можно заметить. [5]
ЮЮ (2006-10-16 04:04:00) [13]
> Вопрос почему у формы курсор меняется сразу, а пайнтбокса
> нет?
Вопрос то в чем? Не меняется совсем? Или не сразу?
D7, WinXP - поведение одинаковое и най формой и над боксом
RASkov (2006-10-16 04:03:00) [14]> [4] Ketmar © (16.10.06 04:01)
Так это понятно, что двинуть. Но нужно изменить сразу как только мышь вошла в прямоугольник на пайнте, у формы без проблем сразу меняется. А вот у паинта только если на граница+1:(
Ketmar (2006-10-16 04:01:00) [15]если я верно понял проблему (код лениво проверять) -- то именно двинуть мышкой. если неверно -- извиняюсь за "дезу". %-)
Муха (2006-10-16 04:00:00) [16]Т.е. обоим (TForm и TPaintBox) от TControl достался.
Муха (2006-10-16 03:59:00) [17]> [1] Ketmar © (16.10.06 03:57)
А что, больше никак нельзя? Почему так происходит ведь курсор у них от одного родителя.
Ketmar (2006-10-16 03:57:00) [18]двинуть мышью. серьёзно.