Форум: "Основная";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];
ВнизChange cursor Найти похожие ветки
← →
Gadfly (2002-11-03 14:09) [0]Проблема, вроде бы, мелкая, но не могу побороть. Итак, запускается длительный процесс (работа с БД). При этом курсор меняет свое значение с crDefault на crSQLWait, что вполне естественно. На форме есть кнопка AbortButton (TSpeedButton), при нажатии на которую процесс должен прерваться. Хотелось бы, чтобы во время выполнения процесса при наведении курсора на AbortButton этот курсор менялся с crSQLWait на crArrow, а как только курсор покинет пределы кнопки, чтобы он снова стал равным crSQLWait. Как я ни старался, но пока процесс не завершится или не прервется, форма курсора неизменно остается в виде песочных часов. На событие AbortButton.MouseMove я вешал код
Application.ProcessMessages;
Screen.Cursor (или AbortButton.Cursor) := crArrow;
Это не произвело никакого эффекта, хотя при трассировке программа заходит в эту процедуру, и значение курсора устанавливает то, которое мне нужно. Однако визуально ничего не меняется (хотя кнопка нажимается и AbortButton.Click работает). Где кривизна рук?
← →
Юрий Зотов (2002-11-03 16:26) [1]Попробуйте выставить AbortButton.Cursor в design-time или попробуйте после AbortButton.Cursor := crArrow вызвать Application.ProcessMessages.
Если ни то, ни другое не поможет, уточните - кнопка реагирует на клик мгновенно или с задержкой?
← →
McSimm (2002-11-03 16:31) [2]Как вариант решения проблемы - задавать crSQLWait не для Screen, а для формы (и всех контролов на ней, если возможно). Тогда можно будет задать свой курсор для AbortButton.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.009 c