Главная страница
    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
15-1143717339
grisme
2006-03-30 15:15
2006.04.23
Московский Ун. Дружбы народов


2-1144492883
Std
2006-04-08 14:41
2006.04.23
TstringList


15-1143659754
cyc
2006-03-29 23:15
2006.04.23
Почему выбирают 1С


2-1144409499
Толян
2006-04-07 15:31
2006.04.23
картинка в RichEdit


15-1143535479
Yanis
2006-03-28 12:44
2006.04.23
Кривоватость какая то...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский