Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Смена курсора


Муха ©   (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]

двинуть мышью. серьёзно.


Наверх

Титульная страница Поиск, карта сайта Написать письмо