Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.04.23;
Скачать: [xml.tar.bz2];

Вниз

[Юзабилити] Формы создания/настройки   Найти похожие ветки 

 
Kerk ©   (2006-03-29 11:28) [0]

Пользуясь тем, что сегодня благодаря электрикам можно не работать. Вынесу на обсуждение вот такой вопрос.

Есть форма "Создание XXX". В ней пользователь задает основные свойства этого XXX, жмет ОК и объект создается (вставляется соответствующая строка в табличку БД). Однажды заданные эти свойства редактировать уже нельзя. Так же есть форма "Параметры XXX", там несколько вкладок и куча параметров.

В данный момент реализовано так. Пользователь жмет "Создать" появляется окошко ввода свойств, он создает, после закрытия формы автоматически появляется форма "Параметры" и там можно подредактировать параметры вновь созданного объекта.

Но. Появилась необходимость добавить на форму параметров еще одну вкладку, содержащую задаваемые при создании свойства. Read Only. Мне логичным кажется решение интегрировать две формы, т.е чтобы пользователь задавал свойства, жал "Создать" и на этой же форме появлялись бы дополнительные вкладки с параметрами, которые можно было бы тут же редактировать. Но проблема в том, что пользователь может быть введен в заблуждение тем, что нажав "Отмена" в этой форме уже после создания, он как бы может отменить создание объекта, но на самом деле он лишь отменит редактирование параметров.

Как это удобнее для пользователя реализовать?
Сорри за объем.


 
Плохиш ©   (2006-03-29 11:33) [1]


> Kerk ©   (29.03.06 11:28)

Хочешь сказать, что про фреймы не знаешь?


 
Kerk ©   (2006-03-29 11:35) [2]

Плохиш ©   (29.03.06 11:33) [1]
Хочешь сказать, что про фреймы не знаешь?


Хочу сказать, что не вижу смысла иметь 2 формы.


 
Kerk ©   (2006-03-29 11:35) [3]

Про фреймы думал. Но остановился пока на такой вот объединенной форме. Может и не прав.


 
roottim ©   (2006-03-29 12:05) [4]

Для создания объекта со всяческими параметрами использую wizard, то есть [Далее]...[Далее]... и [Финиш!] с отчетом на последней стадии  о введеных данных для проверки.
А вот дальнейшее редактирование, удаление проходит в соответствующей форме.
Вроде всем понятно и не путают.


 
Gero ©   (2006-03-29 12:14) [5]

> [4] roottim ©   (29.03.06 12:05)

Очень хорошее и правильное решение.


 
Ega23 ©   (2006-03-29 12:16) [6]

Обычно делаю так:


type
 TXXXPropertyForm=class(TForm)
   .........
   всякие контролы, отвечающие за свойства объекта XXXX
   .........

  private

    procedure SetFMode(const Value:Integer);
  public

    property Mode:Integer read FMode Write SetFMode;
  end;

procedure TXXXPropertyForm.SetFMode(const Value:Integer);
begin
 FMode:=Value;

 if Mode=0 // Добавляем новый экземпляр
  begin
    /// Забиваем все контролы значениями по-умолчанию
  end;

 if Mode=1 // Редактируем существующий экземпляр
  begin
    /// Забиваем все контролы значениями из Набора Данных
  end;

end;



 
Sandman25 ©   (2006-03-29 12:25) [7]

Ega23 ©   (29.03.06 12:16) [6]

Замени Integer на TWorkMode = (wmNew, wmEdit,...).


 
Ega23 ©   (2006-03-29 12:41) [8]


> Замени Integer на TWorkMode = (wmNew, wmEdit,...).


Это уже несущественно. В конечном итоге тот же ineger получится..  :о)
Здесь сама суть важна.
Хочу редактировать - создал форму, Mode=1, ShowModal.
Хочу добавить - то же самое, только Mode=0
Да, в обработчике btnOkClick запускаю функцию проверки на "дурака", далее анализирую значение Mode (соответствующий параметр в ХП), и уже после всего этого ModalResult=mrOK.


 
Sandman25 ©   (2006-03-29 14:51) [9]

Ega23 ©   (29.03.06 12:41) [8]

Существенно. Мне досталось сопровождение старого проекта. Слышал бы ты мои эпитеты в адрес разработчика, в сотнях мест использующего if WorkMode = 1 then и т.д.
И, как и ты, он даже else не использовал, не говоря уже о case. Ты случайно в Кишиневе не работал? :)


 
Ega23 ©   (2006-03-29 14:53) [10]


> Ты случайно в Кишиневе не работал? :)


Нет, даже не был...   :о)

А насчёт Mode=1 - это не я изобрёл, это общий стиль нашей команды, так у нас в группе все пишуть...   :о)
Так что за введение такого типа меня по голове не погладють...  :о)


 
Sergey13 ©   (2006-03-29 15:09) [11]

2Kerk ©   (29.03.06 11:28)
>Но проблема в том, что пользователь может быть введен в заблуждение тем, что нажав "Отмена" в этой форме уже после создания, он как бы может отменить создание объекта, но на самом деле он лишь отменит редактирование параметров.

Обзови кнопку более информативно. Например "Отмена создания". После создания смени на "Отмена редактирования". И всех делов. 8-)


 
Sandman25 ©   (2006-03-29 15:12) [12]

Ega23 ©   (29.03.06 14:53) [10]

Понятно. Хоть бы константы завели, вроде WM_NEW = 1 :)


 
iZEN ©   (2006-03-30 11:47) [13]

http://gui.ru/


 
DiamondShark ©   (2006-03-30 12:03) [14]

Если этот объект такой хитрый, то я бы оставил две формы: создание в стиле "визард" и просмотр в виде "странички свойств".

А группы атрибутов можно сгруппировать во фреймы и реюзать.

Вот... как-то примерно так.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.04.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.014 c
2-1144481619
Der Nechk@ssoff
2006-04-08 11:33
2006.04.23
Toolbar


15-1144250794
Дурак
2006-04-05 19:26
2006.04.23
Вопросик сложный


2-1144513418
FA
2006-04-08 20:23
2006.04.23
Динамические массивы в параметрах


2-1144441086
ctudent
2006-04-08 00:18
2006.04.23
Счётчик


2-1144300612
K_VAL
2006-04-06 09:16
2006.04.23
Двумерный массив и оператор For





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский