Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.07.2010, 23:11   #1
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
Сообщение Изменить курсор

Нужно следующие:
По нажатию правой кнопки мыши изменить курсор (на crSizeAll). При отпускании ее сделать его прежним (crArrow). Все это для компоненты Image.
Я делаю так:
Код:
procedure Form1.Image1MouseDown(...);
begin
  if Button = mbRight then Image1.Cursor:=crSizeAll;
end;

procedure Form1.Image1MouseUp(...);
begin
  if Button = mbRight then Image1.Cursor:=crArrow;
end;
но почемуто если нажать кнопку и не двигать мышь, курсор не изменяет свой вид. Он изменит его только когда я двину мышью. Тоже самое и при отпускании. Кнопку отпустил а мышь не двигал - курсор не вернулся в прежний вид. Что делать???
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 24.07.2010, 23:24   #2
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Код:
 if Button = mbRight then Image1.Cursor:=crSizeAll;
image1.Repaint;
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 24.07.2010, 23:48   #3
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

Цитата:
Сообщение от DIgorevich Посмотреть сообщение
Код:
 if Button = mbRight then Image1.Cursor:=crSizeAll;
image1.Repaint;
неа... не работает
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 24.07.2010, 23:50   #4
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Идея: можно спрятать и показать курсор
Код:
ShowCursor(false);
ShowCursor(true);
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 24.07.2010, 23:54   #5
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

Цитата:
Сообщение от Selestis Посмотреть сообщение
Идея: можно спрятать и показать курсор
Код:
ShowCursor(false);
ShowCursor(true);
не помогает. Хотя ели в обработчике нажатия кнопки просто спрятать курскор (ShowCursor(false)) то срабатывает сразу. Но почему не изменяет вид курсора не пойму???

А вот если все это делать в обработчиках для формы а не для image, то там все работает нормально.
ICQ: 593-013-807

Последний раз редактировалось Don Karleone; 25.07.2010 в 01:00.
Don Karleone вне форума Ответить с цитированием
Старый 25.07.2010, 07:42   #6
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

А ты ее чуть шевельни на картинке :
Код:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  pt:tpoint;
begin
  if Button = mbRight then
    begin
    Image1.Cursor:=crSizeAll;
    GetCursorPos(pt);
    SetCursorPos(pt.X+1, pt.y+1);// !!!
    end;
end;
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 25.07.2010, 14:50   #7
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

Цитата:
Сообщение от Kotofff Посмотреть сообщение
А ты ее чуть шевельни на картинке :
не помогает.
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Старый 25.07.2010, 16:27   #8
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Цитата:
не помогает.
У меня все работает !!!
Вложения
Тип файла: zip ImageMouseUPDOWN.zip (13.1 Кб, 44 просмотров)
"Заряженному танку в дуло не смотрят" @Dekmer in WoT

Последний раз редактировалось Kotofff; 25.07.2010 в 16:35. Причина: Прикрепил пример !!!
Kotofff вне форума Ответить с цитированием
Старый 25.07.2010, 19:26   #9
Don Karleone
Форумчанин
 
Регистрация: 05.04.2010
Сообщений: 410
По умолчанию

Да, действительно все работает! Причем двигать курсор не обязательно. Можно написать так:
GetCursorPos(pt);
SetCursorPos(pt.X,pt.Y);

Спасибо!!!
ICQ: 593-013-807
Don Karleone вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реестр - Необходимо изменить действие по умолчанию для .reg файлов(«Изменить» вместо «Объединить»). ACE Valery Windows 7 30.11.2010 23:33
Изменить курсор при перемещении формы Nester Общие вопросы Delphi 11 28.09.2009 18:29
уберите курсор (в конце программы верните курсор), HECTOR.A. Паскаль, Turbo Pascal, PascalABC.NET 2 05.06.2009 20:10
Возможно ли изменить курсор в PopupMenu и MainMenu? Volkogriz Общие вопросы Delphi 2 30.10.2007 13:48