Текущий архив: 2005.07.11;
Скачать: CL | DM;
Вниззамена MessageDlg Найти похожие ветки
← →
kot andrei (2005-06-08 12:26) [0]В программе есть эдит, в который можно вводить все кроме символов которые запрещено использовать при переименовании любого файла в Винде. Так вот когда пользователь набирает один из этих символов ему сразу выдается messageDlg и удаляется последний символ в эдите. Так вот что мне не нравится это сам MessageDlg: отнимает фокус у окна, громоздский, короче слишком много ему внимания.
Посоветуйте пожалуйста что нибудь более ненавящевое, не отнимающее фокус и без использования сторонних компонент.
Заранее благодарен, с уважением.
← →
Amoeba © (2005-06-08 13:12) [1]Можно просто подавать звуковой сигнал вместо показа диалога.
← →
Digitman © (2005-06-08 13:13) [2]
> В программе есть эдит
.. и у этого эдита есть событие OnKeyPress, в обработчике которого можно блокировать ввод "запрещенных" символов
> когда пользователь набирает один из этих символов ему сразу
> выдается messageDlg и удаляется последний символ в эдите ..мне не нравится ..
просто не выводи messageDlg - и всех делов !
> ненавящевое
это сильно !
или стильно ?)
← →
kot andrei (2005-06-08 13:40) [3]>>Amoeba © (08.06.05 13:12) [1]
>>Можно просто подавать звуковой сигнал вместо показа диалога.
>>Digitman © (08.06.05 13:13) [2]
>>.. и у этого эдита есть событие OnKeyPress, в обработчике которого можно блокировать ввод "запрещенных" символов
надо еще сказать пользователю какие еще символы вводить нельзя, чтобы он не парился и не бил локтями по клаве.
>>просто не выводи messageDlg - и всех делов !
так вот в этом и вопрос: предложите замену пожалуйста!
← →
Digitman © (2005-06-08 13:45) [4]
> надо еще сказать пользователю какие еще символы вводить
> нельзя, чтобы он не парился и не бил локтями по клаве.
ну и скажи ! какие проблемы-то ?
размести рядом с эдитом лейбл с текстом-подсказкой .. или хинт ..
можно и от диалога не отказываться, просто по его закрытию возвращать фокус эдиту вызовом метода SetFocus()
← →
kot andrei (2005-06-08 13:54) [5]>>Digitman © (08.06.05 13:45) [4]
>>размести рядом с эдитом лейбл с текстом-подсказкой ..
что за хрень?
>>можно и от диалога не отказываться, просто по его закрытию
>>возвращать фокус эдиту вызовом метода SetFocus()
а ты думаешь я фокус куда передавал?
Вот на счет хинта подумать можно...
Тогда подскажите как его вызвать и подержать подольше
← →
Digitman © (2005-06-08 14:00) [6]
> kot andrei (08.06.05 13:54) [5]
> что за хрень?
совсем нюх потерял ?)
обычный TLabel !)
> а ты думаешь я фокус куда передавал?
а мне почем знать, в какой момент ты пытаешься фокус установить ?
> как его вызвать
Edit.ShowHint = True
Edit.Hint = "Боня, ты тупой ! Сколько раз тебе еще говорить, что строка пути к файлу НЕ может содержать такие-то символы ?"
← →
kot andrei (2005-06-08 14:10) [7]>>Digitman © (08.06.05 14:00) [6]
>>совсем нюх потерял ?)
>>обычный TLabel !)
да что такое label я знаю, я про саму идею оповещения пользователя, ты где нибудь такое видел? я нет...
>>Edit.ShowHint = True
>>Edit.Hint = "Боня, ты тупой ! Сколько раз тебе еще говорить, что
>>строка пути к файлу НЕ может содержать такие-то символы ?"
это тоже понятно... подержать та его как подольше?
← →
Digitman © (2005-06-08 14:21) [8]
> я про саму идею оповещения пользователя
пользователь твой настолько туп, что не может ассоциировать смысл текста подсказки, находящегося рядом с полем ввода, с тем что от него тобой требуется при вводе ?
купи ему контроллер, который будет управлять колотушкой, всякий раз смачно делающей "хрясь" по макушке юзера, когда он в очер.раз введет "неправильный" символ)
> подержать та его как подольше?
на уровне ОС, наверно, можно.
но - опять же ! - юзер такой тупой ? он не в состоянии прочитать за те пару-тройку секунд текст хинта и вникнуть в него ?
← →
kot andrei (2005-06-08 14:33) [9]>>Digitman © (08.06.05 14:21) [8]
Я то тебя понимаю Digitman.
Но вот уровень IQ пользователя, предсказать я, ну не как не могу... Просто хочется сделать это наиболее удобочитаемым.
← →
Digitman © (2005-06-08 14:43) [10]подскажи ссылку на существующее ПО, в котором, по твоему мнению, подобная ситуация обрабатывается "грамотно" с т.з. потенциально "тупого Бони"...
пример это разберем с тобой, разложим по полкам, как-что и где там делается в этом плане ..
← →
kot andrei (2005-06-08 14:49) [11]Ну например: создаем на рабочем столе *.txt файл, пытаемся его переименовать и в имени вводим символ ">", и смотрим что происходит...
Вот надо что-то подобное...
P.S. повторюсь: без доп. компонент.
← →
Digitman © (2005-06-08 14:51) [12]
> и смотрим что происходит
и что, кстати, происходит ?
← →
kot andrei (2005-06-08 15:09) [13]Выплывает маленькая подсказка о том, что вводить нельзя такие символы. Вроде как BaloonHint(или как там его). Digitman ну попробуй сам увидишь.
← →
kot andrei (2005-06-08 15:15) [14]или в верхней части этого окна наведи на "Новости" , "Поиск" , "Faq" и появиться многострочный типа-хинт, который висит ровно столько сколько мыша находится над гиперссылкой.
Вот надо что то вроде этого реализовать.
← →
Digitman © (2005-06-08 15:19) [15]
> kot andrei (08.06.05 15:09) [13]
у меня в винтукее никаких "балонов" нет.
как только эдит-контрол, в который я ввел ">" в ходе редактирования имени файла, теряет фокус, я имею тот же самый диалог, в титле имеющий "Переименование", в тексте имеющий "Имя файла не должно содержать такие-то символы .." ...
как только я жмакаю ОК, фокус передается тому же самому контролу, в который я влупил ">", в рез-те чего я могу тут же продолжить редактирование ..
← →
kot andrei (2005-06-08 15:21) [16]У тебя XP?
← →
Digitman © (2005-06-08 15:28) [17]нет, Винтукей ... Воркстейшн Про ..
← →
kot andrei (2005-06-08 15:33) [18]Жаль...
Ну тода на основе этого сайта
kot andrei (08.06.05 15:15) [14]
← →
Digitman © (2005-06-08 15:35) [19]
> kot andrei (08.06.05 15:33) [18]
это не хинт ... точнее - не хинт станд. ОС-механизма.
обычное окно.
← →
kot andrei (2005-06-08 15:39) [20]Предлагаешь делать None форму и скрывать через время?
Вообщем то тоже вариант. Ну какой-то блин, все равно корявый...
Ну да ладно, буду думать дальше...
P.S. Ну хочется мне сделать красиво и удобно...
Спасибо тебе огромное за внимание и участие!!!
← →
Digitman © (2005-06-08 15:44) [21]
> kot andrei (08.06.05 15:39) [20]
> Спасибо тебе огромное за внимание и участие
да..
защита от дурака - штука посложней батонокидательства) ... согласен) ...
успехов !
← →
msguns © (2005-06-08 16:20) [22]А как на счет того, чтобы в подвал формы с эдитами всандалить статуспанель и туда писать текст ошибки. Годится при любом количестве эдитов и не только. Если уж хочется покрасивше, то можно сделать текст моргающим или переливающимся всеми цветами радуги (TTimer в помощь)
Просто и сердито ;))
← →
Digitman © (2005-06-08 16:22) [23]
> msguns © (08.06.05 16:20) [22]
если уж Боня-тупой не видит то что у него перед носом, красными аршинными буквами, с саундом и колотушкой по макушке репы, то подвал с текстом ему - что мертвому припарка)
← →
Koala © (2005-06-08 18:47) [24]
>
> [7] kot andrei (08.06.05 14:10)
> >>Edit.ShowHint = True
> >>Edit.Hint = "Боня, ты тупой ! Сколько раз тебе еще говорить,
> что
> >>строка пути к файлу НЕ может содержать такие-то символы
> ?"
>
> это тоже понятно... подержать та его как подольше?
Application.HintHidePause := 10000; в милисекундах
← →
kot andrei (2005-06-11 09:39) [25]Вот нашел более менее подходящую замену, правда юзеру на ОК все равно прийдется нажимать, но визуально поприятней сделано.
http://www.delphikingdom.com/asp/viewitem.asp?UrlItem=/treasury/hsdialogs.htm
← →
Anatoly Podgoretsky © (2005-06-11 09:45) [26]Зачем чтото называть, по нажатию любой клавиши окно скрывается, фокус возвращается в основное окно. Обычный модальный диалог особой формы.
← →
kot andrei (2005-06-11 09:52) [27]>>Обычный модальный диалог особой формы
что и требовалось...)
← →
Anatoly Podgoretsky © (2005-06-11 10:01) [28]Только нажатую клавишу возвращай обратно.
Страницы: 1 вся ветка
Текущий архив: 2005.07.11;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.039 c