Re: Ещё один вариант Messagebox() | |
---|---|
_vit Автор Сообщений: 5243 Дата регистрации: 29.07.2002 |
А Вит ответит так, что MessageBox предназначен для вывода сообщений и регистраци реакции пользователя на них. Пусть не все, но по крайней мере многие сообщения можно свести к форме, при которой стандартного набора кнопок будет достаточно. Не думаю, что у кого то из присутствующих, разрабатываемое приложение по сложности интерфейса, набору функций и колличеству сообщений даже отдаленно стоит рядом с Windows. Но тем не менее MS как-то обходится тем набором который есть в системном MessageBox. Так же можно дойти до создания MessageBoxUniversum накидав туда всех возможных контролов на все случаи жизни и запихнув в него весь UI приложения. Исправлено 1 раз(а). Последнее : _vit, 21.01.25 23:51 ![]() |
Re: Ещё один вариант Messagebox() | |
---|---|
lemenev Сообщений: 229 Дата регистрации: 23.06.2022 |
Я попытался разобраться с программой ask. Это был квест сопоставимый со всей библиотекой xMsg. Её разработчики попытались свести 37 функций исходной библиотеки к одной единственной с минимумом параметров (по сути – с двумя главными) – так как и хотел Taran. Да ещё и расширили функционал исходной библиотеки.
Но зато они засунули в эти 2 параметра по десятку разных сущностей, которые разбирают синтаксическим анализом. Но подобное присуще и родному MESSAGEBOX(). Кто сходу поймёт, что означает код 290. И даже если в комментарии написать, что 290 = 2+32+256, то не становится понятнее. Разработчики программы ask анализируют, каким знаком завершается текст сообщения: «.», «!», «?» или никаким. В зависимости от этого они выбирают предопределённые иконку, звук, цветовую схему, размер и начертание шрифта. Если что-то не нравится, то во втором параметре можно легко всё поменять. Для задания кнопок введены обозначения Y/N/ESC, которые формируют кнопки Да/Нет/Отмена, которые при нажатии формируют ответы Y/N/ESC. И ни каких числовых кодов. Всем кнопкам легко можно поменять надписи. Можно ввести до трёх дополнительных кнопок, которые при нажатии формируют ответы F1/F2/F3. Всё очень наглядно. Мне кажется, что оно того стоит! В приложении программа Ask, тесты по её применению и русское описание. Исправлено 2 раз(а). Последнее : lemenev, 23.01.25 12:56 ![]() |
Re: Ещё один вариант Messagebox() | |
---|---|
of63 Сообщений: 26001 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
я тебе ответил - ты истино правильно говоришь (золотые слова), с кодом-примером, но он куда-то делся... Приложил проги - генераторы запроса да/нет и другие (множественный выбор, радиокнопками выбор, значения, меню с подменю...), наверное слишком большой код проги нельзя указать в тексте сообщения... Щас приложу ZIP-ом... как у нас все допотопно в ИДЕ... Вспомнил смешной перевод Гоблина "как ты постарел!", про старшего сумкина ) Исправлено 1 раз(а). Последнее : of63, 23.01.25 21:05 ![]() |
Re: Ещё один вариант Messagebox() | |
---|---|
Каратаев Сообщений: 4049 Откуда: Алматы Дата регистрации: 04.12.2001 |
[quote lemenev]Я попытался разобраться с программой ask.
Немного потестировал для интереса... Всё бы ничего, даже чтение голосом на русском... Но никакие ухищрения не смогли уменьшить эту форму по горизонтали. Указания параметра cMaxSize влияет только на высоту. А ширина у меня во весь экран практически... Может это только у меня так? ------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. ![]() |
Re: Ещё один вариант Messagebox() | |
---|---|
lemenev Сообщений: 229 Дата регистрации: 23.06.2022 |
Можно расставить в тексте сообщения знаки точки с запятой. В этих местах текст будет переноситься на новую строку. Вот этот код работает
Исправлено 1 раз(а). Последнее : lemenev, 24.01.25 13:58 ![]() |
Re: Ещё один вариант Messagebox() | |
---|---|
Каратаев Сообщений: 4049 Откуда: Алматы Дата регистрации: 04.12.2001 |
Да код-то работает... Я вот про что говорю:
[attachment 37051 msg.png] По ширине во весь экран... ------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. ![]() |
Re: Ещё один вариант Messagebox() | |
---|---|
akvvohinc Сообщений: 4563 Откуда: Москва Дата регистрации: 11.11.2008 |
Задай этот параметр как "ширина, высота" и всё получится. Если высота не волнует, то всё равно укажи её нулевой. Но в любом случае, если я правильно понял, соответствующий размер не будет больше, чем тот, которого достаточно для вывода. То есть если сообщение нормально выводится при ширине W, то увеличение W не приведет к увеличению ширины окна. А вот уменьшить меньше необходимого можно. ![]() |
Re: Ещё один вариант Messagebox() | |
---|---|
akvvohinc Сообщений: 4563 Откуда: Москва Дата регистрации: 11.11.2008 |
А вот такого у меня не происходит. Видимо, где-то неверно определяются параметры твоего экрана. А от длины текста сообщения ширина окна зависит? ![]() |
Re: Ещё один вариант Messagebox() | |
---|---|
lemenev Сообщений: 229 Дата регистрации: 23.06.2022 |
У меня работают все ограничения:
![]() |
Re: Ещё один вариант Messagebox() | |
---|---|
sphinx Сообщений: 31893 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
Миш, а что не так?
------------------ "Veni, vidi, vici!"(с) ![]() |
Re: Ещё один вариант Messagebox() | |
---|---|
lemenev Сообщений: 229 Дата регистрации: 23.06.2022 |
Саш, при нормальном поведении программы ширина окна сообщения пропорциональна длине текста или равна заданным ограничениям. У Александра это окна растягивается во весь экран. Так быть не должно. Почему это так, все те, кто откликнулись, не знают. А если попробовать «от печки». Примеры прикладываю. ![]() |
Re: Ещё один вариант Messagebox() | |
---|---|
_vit Автор Сообщений: 5243 Дата регистрации: 29.07.2002 |
Цитата: Кроме того Цитата: help.foxclub.ru ![]() |
Re: Ещё один вариант Messagebox() | |
---|---|
lemenev Сообщений: 229 Дата регистрации: 23.06.2022 |
Я согласен. Использование таких констант более читаемо, но ещё нагляднее обозначение [Y/N/ESC]. Да и возврат значений Y/N/ESC нагляднее, чем коды. Я не согласен. Если предложение заканчивается знаком вопроса, то оно вопросительное. И никак иначе. Если точкой – то повествовательное, если восклицательным знаком – то утвердительное. Тут не перепутать. В моих разработках нет справочной информации, встроенной в программу. Так что не с чем перепутать. Мне кажется, что вообще крайне мало кто заморачивается встраивать справочную информации в программу. ![]() |
Re: Ещё один вариант Messagebox() | |
---|---|
of63 Сообщений: 26001 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
() Есть такое, про вопросы/сообщения_предупрельтельные/сообщения_о_невозможности действия программы, юзеры не понимают и в малой части текстов сообщений (если им не предписано их читать и реагировать по инструкции), а сообщений о неверности в принимаемых данных может быть не сильно мало, и довольно редких (например, связанных с адресами МЖ, который не очень определен в формате "стандартов" РФ, ФНС вроде выступает единственным стандартом адресов, ГАР, ранее ФИАС). Пока "идея" простая - писать в сообщении больше, сильномногострочный1 текст, с подсказками решения... Заморочно конечно, когда пишешь прогу, то ошибка в этой точке проги понятна, но даже сам, когда встречается эта ошибка, в этой точке программы, то сам себя ругаю - чтож де уподробил-то, суть не разьяснил в тексте. Это отражает качество проги тоже - сообщения об ошибках и предупреждения...
Также малополезны оказались варианты ответов о сообщения/предупреждениях - прервать/продолжить (игнорировать иногда можно) - эти вопросы вызывают ступор у юзеров, они отвечают как попало... Сделать предлагаю с разделением на группы юзеров - продвинуты/обычные. Но писать текстов сообщений и реакций на них придется больше... ![]() |
Re: Ещё один вариант Messagebox() | |
---|---|
of63 Сообщений: 26001 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
> крайне мало кто заморачивается встраивать справочную информации в программу.
Это точно не так! Даже формально, ты обязан иметь справочную информацию, (в текстовом виде точно, хотя бы для ответа на вопрос проверяющих инстанций "у тебя есть описание программы?") Да и просто, в фоксе есть управляемая реакция на кнопку F1 (или SET HELP TO кнопка, не помню), но есть, даже контекстнозависимая (можно присвоить ИД обьектам, и F1 будет попадать на нужный раздел справки, В нащем случае оказалось не нужно по причине, что юзеры не нажимают F1, но опускают руки, или звонят разрабу, что вот де ошибка, текст ошибки не читают... правда я тоже особо не расписываю... пишется специфика в лог, могу его читать... ![]() |
Re: Ещё один вариант Messagebox() | |
---|---|
Каратаев Сообщений: 4049 Откуда: Алматы Дата регистрации: 04.12.2001 |
Я понял причину! У меня на работе экран разделён на 2: один ноутбук, а второй ставил доп. монитор большой... Удобно... Что-то в одном окне, что-то в другом... При разработке бывает полезно. Запускал код дома - там всё нормально, и по ширине, и по высоте как укажешь, так и отображает. А на работе видимо считывается экранное пространство с двух мониторов... Как-то так... ------------------ Никогда не бывает настолько плохо, чтобы не могло быть еще хуже. ![]() |
Re: Ещё один вариант Messagebox() | |
---|---|
BOBAN Сообщений: 646 Откуда: Солигорск Дата регистрации: 05.07.2004 |
Интересно просто. И что дальше ? Многие ли готовы менять свои устоявшиеся MessageBox'ы в своих устоявшихся приложениях или просто академический интерес ? Исправлено 1 раз(а). Последнее : BOBAN, 28.01.25 11:16 ![]() |
Re: Ещё один вариант Messagebox() | |
---|---|
alex; Сообщений: 3406 Откуда: Москва Дата регистрации: 23.11.2004 |
У меня разработка не стоит на месте, недавно был момент, задумался об использовании расширенного сообщения об ошибке. ![]() |
Re: Ещё один вариант Messagebox() | |
---|---|
lemenev Сообщений: 229 Дата регистрации: 23.06.2022 |
Собственно alex; уже ответил. Есть некий новый инструмент. Хочешь – применяй, не хочешь – не применяй. Поздравляю!
Ты подтверждаешь мои слова. Справочную информацию в текстовом виде иметь нужно. Но встраивать её в программу… «юзеры не нажимают F1», а тогда зачем? Вносить новые ошибки в программу? ![]() |
Re: Ещё один вариант Messagebox() | |
---|---|
of63 Сообщений: 26001 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
> Справочную информацию в текстовом виде иметь нужно. Но встраивать её в программу… «юзеры не нажимают F1», а тогда зачем? Вносить новые ошибки в программу?
Ошибка, внесенная в ошибку не считается ошибкой. См. булев закон поглощения ошибок (не путать с з-ном четности ошибок) ) Обычный пользователь программы это человек, конечно. Его обучили, набору действий, штатных (простых) действий с клиентом и компьютером. Но, когда ситуация нештатная, то пользователь, как маленькая обезьянка, начинает ПРОБОВАТЬ (лихорадочно, "интуитивно") разные варианты действий с программой. И вот тут ваша прога и должна этому попытаться противостоять, а именно набором "проверок" на каждое неадекватное действие юзера. Про адекватные выбора юзера - это реагирует любая прога, а на неадекватные - не любая. Исправлено 1 раз(а). Последнее : of63, 29.01.25 01:27 ![]() |
© 2000-2025 Fox Club  |