Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.54 MB
Время: 0.026 c
4-1112543929
Alex Romasnkiy
2005-04-03 19:58
2005.07.11
Исходник winAPI функции


6-1112963163
Макс Т.
2005-04-08 16:26
2005.07.11
enter и twebbrowser


3-1115284835
denis24
2005-05-05 13:20
2005.07.11
Непростая раскраска DBgrid


1-1118728171
stin10
2005-06-14 09:49
2005.07.11
ограничение памяти


14-1118203605
lookin
2005-06-08 08:06
2005.07.11
Восстановить нетекстовый файл, отредактированный в Блокнот