Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Надеюсь с Вашей помощью прога обретет статус "готового проекта".
Смысл программы в том, чтобы помочь человеку разложить свое состояние "по полочкам", и тем самым понять себя, принять свое состояние и, сделав выводы, принять решение как жить дальше... Кроме того, анализ состояния заметно снижает интенсивность переживаний, поэтому не следует использовать программу для анализа целиком позитивных чувств. Назначение программы - работа с негативными или противоречивыми, неясными и дискомфортными мотивационными и эмоциональными состояниями.
Это инструмент для вдумчивой работы - "визуализатор" и "тренажер", и ничего более. Однако силу этого приема нельзя недооценивать - уже многие годы я применяю эту технику в работе с клиентами (только делал это всегда на бумажке, что не очень удобно и лишено многих возможностей программной версии...).
Буду очень признателен за любые замечания и предложения!!!
Для необукеров-новичков прога может быть полезна тем, что:
- является частным примером того, как можно обойти ограничение NB связанное с невозможностью динамически создавать/удалять объекты;
- показывает как можно организовать согласованное "прилипание" объектов при их перетаскивании/сбрасывании (это было самым сложным для меня в этом проекте. Наверное можно проще закодить, но уж как сумел - буду рад замечаниям!);
- показывает, как можно создать событие "левый клик мышки" и "правый клик мышки" для объекта, который штатно не умеет на эти события реагировать (объект "Надпись/Текст") - благодаря возможностям zmFunction - плагина Петра (за что с удовольствием вновь говорю СПАСИБО! Использованы команды: zmSetMouseMonitor, zmConfigMouseMonitor, zmDelMouseMonitor, zmOpenWithDefault, zmColorBox, zmFontBox);
- благодаря этим новым событиям осуществлено "выделение" объектов мышью, вызов контекстного меню щелчком по объекту "Надпись/Текст", предустановки свойств шрифта и заливки, и др.;
- прога содержит примеры рекурсии (организовано подпрограммами и одной меткой);
- пример справочного руководства с индексом (Указателем) и полнотекстовым поиском (таки создал с помощью профессиональной утилиты HTML Help Workshop, бесплатной и доступной на сайте Майкрософт, см. также русификатор к ней и внятные уроки). Оказывается создать chm совсем не сложно, но времени требует... Размер справочного файла оказался великоват из-за гиф-анимации (цена за наглядность). Запись с экрана производилась прогой UVScreenCamera. На самом деле для такой маленькой программы такая "тяжелая" справка избыточна, но хотелось освоить инструменты, так что за размер справки строго не судите, в экзешник ее не пихаю...
P.P.S.: Для сохранения скриншотов используется плагин hpwUtility 2.05. Кстати, достаточно в имени файла написать нужное расширение - команда плагина создаст файл в нужном формате:
Молодец! Но наверное кнопки "Назвать" не надо. Больно уж она не удобная, лучше при смене текста справа в "Названии чувства" менять название. А в общих чертах понравилась, приятный на глаз интерфейс и дизайн красивый И ещё, когда чувство переносишь на нижнюю панель, оно переносится только через несколько секунд, может так и надо?
Добавлено (13 Сентябрь 2010, 08:30) --------------------------------------------- но проблема с динамическими объектами так и не решена Все равно есть ограничение, до 12 можно создать, но они уже созданы, просто невидимые.
нужно отображение текущего шага, а также минимальная инструкция что надо сейчас делать. например: шаг 1 из 3 - выберите и назовите такие-то чувства блабла, чтоб была перед глазами... ладно, в принципе окно сообщения тоже пойдет. при каких-то условиях (натыкал чтото) кнопки шагов чтото перестают работать, хочу вернуться назад фиг при добавке многих квадратов они вылазиют за пределы окна, надо это запретить, высчитывать общую ширину квадратов и сравнивать с шириной окна. Как задавать вопросы
когда чувство переносишь на нижнюю панель, оно переносится только через несколько секунд, может так и надо?
Очень странно... Даже на моем древнем нотике (пень третий, 846 МГц память 576 Мб) переставляет элементы практически мгновенно... Как у остальных? DEMBEL, как у тебя этот момент? Не тормозит прога?
Попробуйте всяко разно менять элементы местами, удалять, сбрасывать за пределы рабочего поля и на него, в общем, помучайте прогу, но лучше всего на примере реального анализа своего состояния (например отношения к кому или чему-либо).
Quote (Alien)
проблема с динамическими объектами так и не решена Все равно есть ограничение, до 12 можно создать, но они уже созданы, просто невидимые.
Ну, да :). Я просто использую их по кругу. Это способ обойти проблему. Благо, что в данной методике больше 12 и не нужно (просто по опыту с бумажной версией знаю).
Quote (Alien)
наверное кнопки "Назвать" не надо. Больно уж она не удобная, лучше при смене текста справа в "Названии чувства" менять название.
В чем именно неудобство? Выделяем объект (щелкаем по нему) в результате чего в поле "Название чувства" появляется его надпись, меняем ее, нажимаем "Назвать", чем и присваиваем новую надпись выделенному объекту. Либо используем для присвоения команду "Назвать" контекстного меню. Alien, опиши, пожалуйста, что именно неудобно?
Quote (DEMBEL)
шаг 1 из 3 - выберите и назовите такие-то чувства блабла, чтоб была перед глазами... ладно, в принципе окно сообщения тоже пойдет.
Думал об этом, но лучшего решения, чем вызов алерта не придумал. Если оставлять на экране - замусорит интерфейс, а при желании вызвать инструкцию (о шаге) очень легко (круглые стрелочки, напоминающие кнопки "плей", сразу под панелью инструментов).
Quote (DEMBEL)
при каких-то условиях (натыкал чтото) кнопки шагов чтото перестают работать, хочу вернуться назад фиг
Странно... Проверил, всё работает. DEMBEL, попробуй, пожалуйста, воспроизвести траблу. Заинтриговал...
Quote (DEMBEL)
при добавке многих квадратов они вылазиют за пределы окна, надо это запретить, высчитывать общую ширину квадратов и сравнивать с шириной окна.
Хорошая идея, я видел, что вылазят, но не обращал на это внимание, а ведь будет удобнее, если сброшенный элемент автоматом получит новый размер, если с прежними границами окажется за пределами рабочей области. Спасибо!! Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
Сообщение отредактировано Вадим - Пн, 13 Сентября 2010, 16:06
ну ээ... нет, но операции над прямоугольничками впрямь какието инерционные по мне... у тебя там ненавешано посторонних скриптов, ну я сам посмотрю в исходнике в чем может быть дело
Добавлено (13 Сентябрь 2010, 16:03) --------------------------------------------- я тоже вначале не вьехал как называть, думал вначале нажать назвать, потом текст написать... может лучше всплывающее окошко с едитбоксом? хотя когда разберешся уже пофигу
попробуй использовать контейнер, и чтоб ширина прямоугольников автоматически пропорционально уменьшалась
Да проще, наверное, будет условие на ширину поставить на функцию сброса объекта и запускать подпрограмму подгонки размера. А уменьшать пропорционально - это прикольно, но будет искажать труд пользователя (он сам должен менять размеры объектов - это очень важная психологическая часть работы (осознание места и объема того или иного чувства в состоянии...). Так что подгонять есть смысл только последний сброшенный, чтобы не вылазил за край.
Вадим, чтобы переименовать нужно нажать на "назвать", потом изменить справа название. Не проще ли чтобы при нажатии на "чувство" показывать сразу справа её текст и тут же его изменять. Ведь на то чтобы нажать кнопку "назвать" уходит от 1 до 3 секунд
чтобы переименовать нужно нажать на "назвать", потом изменить справа название.
Зачем? Чтобы изменить название элемента надо по нему нажать, в поле "Название чувства" отобразится его название, которое можно исправить или полностью заменить. Кнопка "Назвать" лишь присваивает новое название выделенному элементу. Тоже самое делает команда "Назвать" из контекстного меню.
Quote (Alien)
Не проще ли чтобы при нажатии на "чувство" показывать сразу справа её текст и тут же его изменять.
Артём, так вроде бы так и есть ... ? См. скрин - "грусть" на "радость" меняю через контекстное меню, а "тяжесть" на "легкость" через кнопку "Назвать" (в спойлере зацикленный гиф - открой его в отдельной вкладке в полном размере, чтобы проигрывался).
Артём, так вроде бы так и есть ... ? См. скрин - "грусть" на "радость" меняю через контекстное меню, а "тяжесть" на "легкость" через кнопку "Назвать" (в спойлере зацикленный гиф - открой его в отдельной вкладке в полном размере, чтобы проигрывался).
Значит немного спутал, у тебя ещё не удобнее Представь если бы в windows, чтобы переименовать файл, нужно нажать "переименовать", изменить название файла, потом снова нажать "переименовать". Думаю не удобно бы так было) Вот так же и здесь, сделай чтобы название само сохранялось при смене текста.
Дата: Вт, 14 Сентября 2010, 05:00 | Сообщение # 10
Генератор идей
Модераторы
Сообщений: 3173
Offline
Quote (Alien)
чтобы переименовать файл, нужно нажать "переименовать", изменить название файла, потом снова нажать "переименовать"
Я не понимаю, зачем нажимать "Назвать" ДО ввода названия???
Quote (Alien)
у тебя ещё не удобнее
Почему неудобнее то??? В ролике показаны два способа, а не один. Артём, растолкуй мне плиз, я что-то совсем не понимаю в чем неудобство, сейчас кофе налью, может полегчает... Впервые элемент получает название по нажатию кнопки "Добавить" (имя появляется вместе с объектом). У уже существующего объекта поменять название также просто. Кликнул на объект который собрался изменить - в поле "Название объекта" сразу отобразится его название, которое можно заменить или дополнить, а чтобы изменение вступило в силу нужно нажать кнопку "Назвать", либо щелкнув по выделенному элементу правой кнопкой проделать эту операцию через контекстное меню. Куда еще проще?
А, вот ты о чем! Дошла до меня, наконец-то, твоя светлая мысль ! Хорошая идея! Только трудность я вижу в том, что пользователь может случайно переименовать выделенный объект (и во время переименования не сможет видеть надпись "ДО и ПОСЛЕ" правок, не получит возможность визуально сравнивать разные определения для элементов его состояния, а для качества самоанализа это не очень хорошо). Но я подумаю! Может быть действительно так лучше будет...
Добавлено (15 Сентябрь 2010, 08:09) --------------------------------------------- Обновил экзешник (см. первый пост).
В меню "Программа":
- Добавил функцию сохранения скриншота клиентской части окна приложения.
- Добавил открытие папки хранения скриншотов.
Добавлено (25 Январь 2011, 05:56) --------------------------------------------- Обновил экзешник и PUB (см. первый пост).
- Добавлена предустановка свойств шрифта и заливки создаваемых "объектов" (поклон Peter`у за zmFunctions!), так что теперь можно изменять во внешнем виде объектов лишь то, что нужно. Например, можно изменить жирность или размер шрифта не изменяя других его свойств, в то время как ранее нужно было все свойства выставлять заново, при каждом редактировании свойств шрифта, что было крайне (!!!) неудобно.
Прога стала больше походить на готовый проект. Прошу замечаний и предложений. Любого калибра!
При манипуляциях с объектами как-то мне удалось завязать скрипт в узел, но с тех пор воспроизвести ошибку не могу... Если удастся, пожалуйста, сообщите мне как ее повторить.
Пока, главный мешающий фактор в юзабилити - при попытке изменить вид объекта нужно следить за тем, чтобы объект "выделился", иначе будет изменяться предыдущий объект (у выделенного объекта рамка становится толще). Зачастую, чтобы выделить объект приходится сначала мышкой выйти за его границы и зайти на объект снова, а затем уже сделать левый клик. Как это побороть я не знаю...
В общем, проблем с выделением обьектов и изменением их св-в не заметил, все нормально выделяется, и как сделать чтобы вдруг он не выделился я не увидел.
Усилия на борьбу нужно направить в следующем реально мешающем юзабилити направлении (я уже вроде раньше отмечал) - при добавке нового обьекта в нижнюю панель нужно проверять, не вышла ли суммарная ширина всех обьектов за пределы ширины рабочего поля, иначе обьекты задвигаются за окно. Такую же проверку следует сделать и при ресайзе обьекта. Если сумма ширины обьектов больше окна, следует пропорционально уменьшить ширину всех обьектов (необязательно вычислять пропорции ширины чтобы точно вписаться в окно, достаточно немного уменьшить ширину каждого из них на фиксированный множитель, скажем 0,8, чтобы все обьекты были перед глазами.
Добавлено (25 Январь 2011, 16:03) --------------------------------------------- хотя у меня есть более радикальные предложения, по дизу и юзабилити, щас попробую их нарисовать быстро.
при добавке нового обьекта в нижнюю панель нужно проверять, не вышла ли суммарная ширина всех обьектов за пределы ширины рабочего поля, иначе обьекты задвигаются за окно
Да, я помню. Даже реализовал это для объекта, который не влазит - он уменьшается. Но вот если после того, как уже все рабочее поле заставлено объектами туда бросить еще объект, то он вытеснит какой-то из имеющихся за край рабочей области и его потом от туда не достать (разве что только через удаление). Это действительно не есть хорошо! Об этом то я и забыл совсем! Спасибо, обязательно что-то придумаю!
Quote (DEMBEL)
Если сумма ширины объектов больше окна, следует пропорционально уменьшить ширину всех объектов
Да, пожалуй, именно так и следует сделать!
Quote (DEMBEL)
проблем с выделением объектов и изменением их св-в не заметил
Это радует!
__________ Обнаружил, что в Emotion_PUB.rar лежит лишь паб-файл. Исправляю оплошность - перезалил Emotion_PUB.rar, теперь там паб со всеми нужными запчастями, все, что нужно, чтобы можно было прогу скомпилировать на своей машине.
в общем, смысл показанного... юзабилити начинается тогда, когда юзер интуитивно понимает что это и для чего. Для этого есть несложные приемы, первый из них это организация и структурирование интерфейса (их степень определяется характером проги). Кнопки (пока без картинок) сгруппированы по рабочим зонам. Те элементы что у тебя были справа (едитбокс и поле инфы) сразу хрен поймешь как были связаны с кнопками, теперь кнопки сгруппированы по смыслу. Потом, процесс добавления эмоций можно улучшить, введя отдельные кнопки для + и - эмоций, вылазиет алфавитный список в customwindow, щелкнул и добавил в описание. Сейчас это окно с кучей негруппированных терминов только вносит хаос вместо помощи подбору описания. Ну и потом, прогу можно и на одной странице организовать, зачем лишний мусор...
Добавлено (25 Январь 2011, 16:36) --------------------------------------------- ну, кнопки можно и не отдельно располагать, а нарисовать в виде тулбаров, это я чтоб быстрее накопипастил
Кнопки (пока без картинок) сгруппированы по рабочим зонам.
Любопытно! Мне нравится!
Quote (DEMBEL)
Потом, процесс добавления эмоций можно улучшить, введя отдельные кнопки для + и - эмоций
Хорошая идея, надо только еще место нейтральным найти, но они уже как-то не вписываются...
Quote (DEMBEL)
щелкнул и добавил в описание
Пока не знаю как это можно сделать. На данный момент предполагалось копирование через буфер обмена. Но щелчком - это удобнее, конечно. Чем удобнее, тем больше внимания человек сможет отвести главному в работе с прогой - рефлексии своего состояния.
Quote (DEMBEL)
прогу можно и на одной странице организовать, зачем лишний мусор...
да, мессаги поместить за пределы проекта и показывать в customwindow. А фейс если тебе нравится в таком виде, скажи как доработать и возьми себе. Как задавать вопросы
мессаги поместить за пределы проекта и показывать в customwindow
Что значит "за пределы проекта"? Сделать всплывающими сообщениями из трея? А я думал на фоне высвечивать и гасить... На скриншоте вроде бы об этом намек. Или я все перепутал?
Quote (DEMBEL)
фейс если тебе нравится в таком виде, скажи как доработать и возьми себе.
Спасибо за предложение! Мне нравится, есть в том, что ты показал и логика, и эстетика! Надо мне сначала очень критично пересмотреть сам процесс работы с программой, чтобы было действительно удобно и интуитивно понятно. Подожду еще пару дней - предложений и замечаний - может кто еще что интересное подскажет, тогда и с моей стороны осмысленные просьбы по дизайну оформятся. Хочу прогу довести до ума, чтобы выложить в готовых проектах.
Добавлено (25 Январь 2011, 17:03) --------------------------------------------- DEMBEL, на созданном тобой скриншоте, в левом поле, указаны "переключатели", что имеется в виду?
скопируй и вставь контейнер синонимов со второй страницы на первую и задай ему координаты -440 -45, обьект будет расположен за границами рабочей области проекта и невиден в runtime режиме. Таким образом, все контейнеры твои могут присутствовать на одной странице и показываться в customwindow при необходимости.
это же обычный способ, можно приготовить несколько "виртуальных" страниц на одной физической (если подменять контент), пустого пространства вокруг рабочего окна проекта хватает...
Таким образом, все контейнеры твои могут присутствовать на одной странице
А, дошло до меня. Я делаю на разных страницах потому, что экран монитора 15`. Мне проще быстро ткнуть на переключатель страниц, чем елозить ползунками. Добавление страниц в проекте негативно сказывается на нем? Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)