Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
5 / 5 / 3
Регистрация: 01.03.2013
Сообщений: 201
1

Смена курсора для всех элементов формы

11.07.2014, 21:10. Показов 2329. Ответов 16
Метки нет (Все метки)

Здравствуйте, извиняюсь за нубский вопрос, но я поменял курсор с помощью:
Delphi
1
2
Screen.Cursors[5]:= LoadCursorFromFile('my.cur');
Cursor:= 5;
Курсор меняется внутри пустой области формы, но при наведении на другие элементы формы(например кнопки), он сменяется обратно на системный. Как сделать что бы он оставался прежним при наведении на другие элементы?
Ах да, ещё вопросик - как сделать, что бы курсор менялся во всех формах, а не только где прописан приведенный выше код?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.07.2014, 21:10
Ответы с готовыми решениями:

Перехват Escape для всех элементов формы
Товарищи - помогите! при открытой форме проекта нужна перехватить нажатие клавиши esc с клавиатуры...

Отображение координат курсора на всем мониторе, режим формы поверх всех окон
Подскажите плз как сделать отображение на форме положение курсора не на форме а на всем мониторе, и...

Быстрая смена значений всех элементов на форме
Возникла проблема. Необходимо при смене значения Listbox'а сменить значения почти всех элементов на...

Смена всех нечетных элементов массива на минимальный элемент
Написать программу, которая вводит с клавиатуры одномерный массив из 5 натуральных чисел, после...

16
45 / 45 / 14
Регистрация: 12.02.2013
Сообщений: 152
13.07.2014, 22:39 2
Лучший ответ Сообщение было отмечено Виетор как решение

Решение

"во всех формах" -погугли SetSystemCursor.

Добавлено через 6 минут
Не забудьте кстати про "DestroyCursor".
1
пофигист широкого профиля
4463 / 2948 / 833
Регистрация: 15.07.2013
Сообщений: 16,952
15.07.2014, 01:45 3
Лучший ответ Сообщение было отмечено Виетор как решение

Решение

Цитата Сообщение от Виетор Посмотреть сообщение
Курсор меняется внутри пустой области формы, но при наведении на другие элементы формы(например кнопки), он сменяется обратно на системный.
Логично.
Цитата Сообщение от Виетор Посмотреть сообщение
Cursor:= 5;
В этой строке упомянут курсор без упоминания чей это курсор. В таком случае в методе формы считается что имеется в виду курсор самой формы. Т.е. что написал, то и получил. А для всего приложения надо было писать
Delphi
1
Screen.Cursor:=...
1
5 / 5 / 3
Регистрация: 01.03.2013
Сообщений: 201
15.07.2014, 12:24  [ТС] 4
Цитата Сообщение от northener Посмотреть сообщение
Screen.Cursor:=...
Не работает.
0
пофигист широкого профиля
4463 / 2948 / 833
Регистрация: 15.07.2013
Сообщений: 16,952
15.07.2014, 15:10 5
Цитата Сообщение от Виетор Посмотреть сообщение
Не работает.
Что не работает? Компьютер?
0
5 / 5 / 3
Регистрация: 01.03.2013
Сообщений: 201
15.07.2014, 17:11  [ТС] 6
Цитата Сообщение от northener Посмотреть сообщение
Что не работает? Компьютер?
Предложенный вами способ.
0
пофигист широкого профиля
4463 / 2948 / 833
Регистрация: 15.07.2013
Сообщений: 16,952
15.07.2014, 17:39 7
Цитата Сообщение от Виетор Посмотреть сообщение
Предложенный вами способ
У меня работает. Проверено.
1
5 / 5 / 3
Регистрация: 01.03.2013
Сообщений: 201
15.07.2014, 17:41  [ТС] 8
Цитата Сообщение от northener Посмотреть сообщение
У меня работает. Проверено.
У меня не работает. Проверено.
0
Puporev
15.07.2014, 18:00
  #9

Не по теме:

Цитата Сообщение от Виетор Посмотреть сообщение
У меня не работает. Проверено.
Нашел чем хвастаться, своей тупостью...

0
Виетор
15.07.2014, 18:05  [ТС]
  #10

Не по теме:

Цитата Сообщение от Puporev Посмотреть сообщение
Нашел чем хвастаться, своей тупостью...
Спасибо за помощь.

0
Почетный модератор
64089 / 47498 / 32734
Регистрация: 18.05.2008
Сообщений: 115,182
15.07.2014, 18:11 11
Так тебе уже все написали, там делов-то 1 строчка.
Delphi
1
2
3
4
procedure TForm1.Button1Click(Sender: TObject);
begin
screen.Cursor:=-3;
end;
Добавлено через 2 минуты
В справке на TCursor type показаны все допустимые виды курсора, их названия и индексы
1
5 / 5 / 3
Регистрация: 01.03.2013
Сообщений: 201
15.07.2014, 18:25  [ТС] 12
Смена системного:
Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TMain_Form.FormCreate(Sender: TObject);
begin
  OS_cur:= CopyIcon(LoadCursor(0, IDC_ARROW));
  Screen.Cursors[5]:= LoadCursorFromFile('left_ptr.cur');
  SetSystemCursor(CopyIcon(Screen.Cursors[5]), OCR_NORMAL);
end;
 
procedure TMain_Form.FormDestroy(Sender: TObject);
begin
  SetSystemCursor(OS_cur, OCR_NORMAL);
end;
Смена для формы:
Delphi
1
2
Screen.Cursors[5]:= LoadCursorFromFile('left_ptr.cur');
 Screen.Cursor:= 5;
Добавлено через 10 минут

Не по теме:

Цитата Сообщение от Puporev Посмотреть сообщение
своей тупостью...
2-й способ работает не во всех формах, поэтому я и написал, что "не работает", каюсь, не верно выразился, а вы предпочли сразу грубить.

0
пофигист широкого профиля
4463 / 2948 / 833
Регистрация: 15.07.2013
Сообщений: 16,952
15.07.2014, 20:15 13
Цитата Сообщение от Виетор Посмотреть сообщение
2-й способ работает не во всех формах
Это как это не во всех?
1
5 / 5 / 3
Регистрация: 01.03.2013
Сообщений: 201
15.07.2014, 20:28  [ТС] 14
Архив:
Вложения
Тип файла: zip t.zip (1.88 Мб, 4 просмотров)
0
пофигист широкого профиля
4463 / 2948 / 833
Регистрация: 15.07.2013
Сообщений: 16,952
15.07.2014, 20:36 15
Цитата Сообщение от Виетор Посмотреть сообщение
Архив:
Не распаковывается.
0
5 / 5 / 3
Регистрация: 01.03.2013
Сообщений: 201
15.07.2014, 20:38  [ТС] 16
А этот?
Вложения
Тип файла: rar t.rar (2.04 Мб, 3 просмотров)
0
пофигист широкого профиля
4463 / 2948 / 833
Регистрация: 15.07.2013
Сообщений: 16,952
15.07.2014, 21:06 17
Да. Это следствие метода ShowModal.
Delphi
1
2
3
4
5
6
function TCustomForm.ShowModal: Integer;
...
begin
   ...
    SaveCursor := Screen.Cursor;
    Screen.Cursor := crDefault;
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.07.2014, 21:06

Установка курсора для ввода в конкретное поле формы
Здравствуйте. На html страничке есть две формы - поиск и подписка. В каждой форме по одному...

смена цвета сетки для всех книг
как поменять цвет сетки для всех книг excel 2007

Смена курсора
Здравствуйте. Помогите сделать программу, чтоб можно было менять курсор...Пытаюсь сделать это через...

Смена курсора
не работает =\ что не так? procedure TForm1.Button13Click(Sender: TObject); var path:string;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru