Интерфейс пользователя MIS3 — различия между версиями

Материал из ИбисоПедии
Перейти к: навигация, поиск
(Новая страница: «== Главное окно == == Окно с кнопками операций == Назначение показ кнопок с различными спис...»)
 
(Правила дизайна Ribbon)
 
(не показано 56 промежуточных версий 5 участников)
Строка 1: Строка 1:
 +
== Общие ==
 +
# расстояние между контролами по вертикали 10
 +
# свойство TOP для контролов: 10,41,72, 103,134,165 ,195
 +
# метки обязательных полей подчеркиваются красным (см. dmImages.SetRequiredFieldLabelStyle)
 +
# настройки соединения с БД  в [[ibis.ini]]
 +
# текущие настройки приложения (положения окон, выбранный стили и т.п.) в реестре Software\IBIS\MIS (актуальное значение находится в dConfig.dmConfig.AppStorage.Root). Путь ветки реестра правильно брать так dmConfig.AppStorage.Root + '\' + Self.ClassName
 +
# русификация в файле russian.lng  (в том числе и для других языков через cxLocalizer)
 +
# стиль нередактируемых контролов dmImages.escInfo
 +
# стиль заголовков (для cxLabel над списками и пр) - dmImages.escCaption.
 +
#* cxlabel.Height := 14
 +
#* cxlabel.Style.Font.Size := 8
 +
# AlignWithMargin := False (Избегаем его использования)
 +
 
== Главное окно ==
 
== Главное окно ==
 +
== Горячие клавиши ==
 +
Здесь информация может немного устареть. См описание классов и исходные коды модулей [[MIS3._Иерархия_классов]]
 +
иконки, горячие клавиши определены в модуле dImages.pas. См. dImages.SetShurtCutOnRibbon(AForm:TForm);
 +
 +
{|cellspacing="0" border="1"
 +
!Действие
 +
!Hotkey
 +
!Место применения
 +
!Примечания
 +
|-
 +
|Сохранить
 +
|F2 Ctrl+S
 +
|
 +
|
 +
|-
 +
|Сохранить и закрыть
 +
|Ctrl+Q или Ctrl+Enter
 +
|
 +
|
 +
|-
 +
|Добавить
 +
|F3, NumPlus
 +
|
 +
|
 +
|-
 +
|Редактировать
 +
|F4
 +
|
 +
|
 +
|-
 +
|Обновить
 +
|F5
 +
|
 +
|
 +
|-
 +
|Удалить
 +
|Shift+Del
 +
|
 +
|
 +
|-
 +
|Закрыть
 +
|F12 или ESC
 +
|
 +
|
 +
|-
 +
|Выбрать
 +
|Shift+ENTER
 +
|
 +
|
 +
|-
 +
|Фильтр
 +
|Ctrl+F
 +
|
 +
|
 +
|-
 +
|Печать
 +
|Ctrl+P
 +
|
 +
|
 +
|-
 +
|Сохранить и вернуть
 +
|Shift+Enter
 +
|
 +
|
 +
|-
 +
|Проверить
 +
|F7
 +
|
 +
|
 +
|-
 +
|}
 +
 +
=== В окнах списках ===
 +
* Ctrl+F4 - Закрыть текущий список
 +
* Ctrl+I - Включить инкрементальный поиск по таблице
 +
 +
=== Для разработчика ===
 +
 +
  IBISShortCut_DebuInfo : String = 'Ctrl+Shift+L'; // сочетание клавиш для показа системной информации об окне (имя класса, идентификатор объекта и т.п)
 +
  IBISShortCut_Audit    : String = 'Ctrl+Shift+H'; // сочетание клавиш для вызова окна аудита
  
 
== Окно с кнопками операций ==
 
== Окно с кнопками операций ==
Строка 8: Строка 101:
 
- наследник от TdxRibbonForm
 
- наследник от TdxRibbonForm
  
<source lang="pas">
+
см [[MIS3. Иерархия классов]]
procedure TfmDict.FormCreate(Sender: TObject);
+
 
begin
+
== Окно список ==
  // для форм без списка достаточно только одного вызова
+
 
  // Проверяем доступ
+
* Отображает один список (список справочников, людей и т.п.)
//  dxbrUserControl.Visible := dmMain.CheckRight(1);
+
* имя pas-файлы должно заканчиваться на List
 +
* умеет реагировать на сообщения об обновлении
 +
=== Дизайн ===
 +
* FormStyle = fsMDIChild
 +
* tdxbarmanager
 +
* TdxRibbon
 +
 
 +
[[File:WinList.png]]
 +
см [[MIS3. Иерархия классов]]
 +
 
 +
== WinOnTask ==
  
  if not rbtDict.IsMerged then  fmMain.rbtDict.Merge(rbtDict);
+
- наследник от WinOnTask (кнопка на панели задач)
  dxRibbon1.Visible := False;
+
- название заканчиваем на WOT (WinOnTask)
  
end;
+
[[Файл:IBIS_WOT1.png]]
</source>
 
  
 +
=== Дизайн ===
 +
* Наследуем от TfmWinOnTask
 +
* TdxBarmanager
 +
* dxRibbon.showheaders := False (в дизайнере)
  
== Окно список ==
+
см [[MIS3. Иерархия классов]]
 +
 
 +
== Правила дизайна Ribbon ==
 +
* Подпись к группе кнопок должна быть существительным с Большой буквы (Файлы, Пользователи, Расписание, Документы, Действия и т.п.)
 +
* Подписи к кнопкам должны по возможности означать действие (глагол в совершенной форме) над объектом который указан в заголовке группы. Например: Сохранить, Редактировать, Закрыть, Удалить. Для двухсловных действий (Показать фильтр, Показать расписание) допускается пропуск действия. Т.е. Указываем просто Фильтр, Расписание и т.п. По возможности подпись к кнопке должна состоять из одного слова.
 +
 
 +
== Модальное окно ==
 +
[[Файл:ibis_modal.png]]
 +
 
 +
== Простое модальное окно ==
 +
* Panel
 +
** Align := paBottom
 +
** Height := 41
 +
* Кнопки
 +
** Width := 75
 +
** Top := 8
 +
** Height := 25
 +
** Anchors := [akTop,akRight]
 +
** Кнопка "Отмена" Left := Panel.Width-15-75 := Panel.Width -90
 +
** Кнопка "ОК"  Left := Panel.Width-(15-75)*2 := Panel.Width -180  расстояние между кнопками = 15
 +
** Кнопки TcxButton, Skin = ultraflat, skin = UserSkin
 +
** Кнопка OK имеет значение Default := True;
 +
 
 +
== Поддержка скинов ==
 +
Проект внутри себя не должен содержать никаких скинов. Все скины находятся во внешних файлах в папке skins и подгружаются динамически.
 +
Поэтому в исходных кодах в секции uses  не должно быть следующих файлов (компиляция на сервере не пройдет):
 +
 
 +
* dxSkinBlack.dcu                 
 +
* dxSkinBlue.dcu                   
 +
* dxSkinBlueprint.dcu             
 +
* dxSkinCaramel.dcu               
 +
* dxSkinCoffee.dcu                 
 +
* dxSkinDarkRoom.dcu               
 +
* dxSkinDarkSide.dcu               
 +
* dxSkinDevExpressDarkStyle.dcu   
 +
* dxSkinDevExpressStyle.dcu       
 +
* dxSkinFoggy.dcu                 
 +
* dxSkinGlassOceans.dcu           
 +
* dxSkinHighContrast.dcu           
 +
* dxSkiniMaginary.dcu             
 +
* dxSkinLilian.dcu                 
 +
* dxSkinLiquidSky.dcu             
 +
* dxSkinLondonLiquidSky.dcu       
 +
* dxSkinMcSkin.dcu                 
 +
* dxSkinMetropolis.dcu             
 +
* dxSkinMetropolisDark.dcu         
 +
* dxSkinMoneyTwins.dcu             
 +
* dxSkinOffice2007Black.dcu       
 +
* dxSkinOffice2007Blue.dcu         
 +
* dxSkinOffice2007Green.dcu       
 +
* dxSkinOffice2007Pink.dcu         
 +
* dxSkinOffice2007Silver.dcu       
 +
* dxSkinOffice2010Black.dcu       
 +
* dxSkinOffice2010Blue.dcu         
 +
* dxSkinOffice2010Silver.dcu       
 +
* dxSkinOffice2013DarkGray.dcu     
 +
* dxSkinOffice2013LightGray.dcu   
 +
* dxSkinOffice2013White.dcu       
 +
* dxSkinPumpkin.dcu               
 +
* dxSkinSeven.dcu                 
 +
* dxSkinSevenClassic.dcu           
 +
* dxSkinSharp.dcu                 
 +
* dxSkinSharpPlus.dcu             
 +
* dxSkinSilver.dcu                 
 +
* dxSkinSpringTime.dcu             
 +
* dxSkinStardust.dcu               
 +
* dxSkinSummer2008.dcu             
 +
* dxSkinTheAsphaltWorld.dcu       
 +
* dxSkinValentine.dcu             
 +
* dxSkinVS2010.dcu                 
 +
* dxSkinWhiteprint.dcu             
 +
* dxSkinXmas2008Blue.dcu           
  
== WinOnTask ==
+
Для того чтобы Delphi не включала эти файлы автоматически существует галочка
 +
Project -> ModifySkinOption. (можно просто обновить файл из svn policlinic.skincfg)
  
  
[[Категория:MIS3]]
+
[[Категория:Руководство программиста MIS3]]

Текущая версия на 10:26, 19 мая 2015

Общие

  1. расстояние между контролами по вертикали 10
  2. свойство TOP для контролов: 10,41,72, 103,134,165 ,195
  3. метки обязательных полей подчеркиваются красным (см. dmImages.SetRequiredFieldLabelStyle)
  4. настройки соединения с БД в ibis.ini
  5. текущие настройки приложения (положения окон, выбранный стили и т.п.) в реестре Software\IBIS\MIS (актуальное значение находится в dConfig.dmConfig.AppStorage.Root). Путь ветки реестра правильно брать так dmConfig.AppStorage.Root + '\' + Self.ClassName
  6. русификация в файле russian.lng (в том числе и для других языков через cxLocalizer)
  7. стиль нередактируемых контролов dmImages.escInfo
  8. стиль заголовков (для cxLabel над списками и пр) - dmImages.escCaption.
    • cxlabel.Height := 14
    • cxlabel.Style.Font.Size := 8
  9. AlignWithMargin := False (Избегаем его использования)

Главное окно

Горячие клавиши

Здесь информация может немного устареть. См описание классов и исходные коды модулей MIS3._Иерархия_классов иконки, горячие клавиши определены в модуле dImages.pas. См. dImages.SetShurtCutOnRibbon(AForm:TForm);

Действие Hotkey Место применения Примечания
Сохранить F2 Ctrl+S
Сохранить и закрыть Ctrl+Q или Ctrl+Enter
Добавить F3, NumPlus
Редактировать F4
Обновить F5
Удалить Shift+Del
Закрыть F12 или ESC
Выбрать Shift+ENTER
Фильтр Ctrl+F
Печать Ctrl+P
Сохранить и вернуть Shift+Enter
Проверить F7

В окнах списках

  • Ctrl+F4 - Закрыть текущий список
  • Ctrl+I - Включить инкрементальный поиск по таблице

Для разработчика

 IBISShortCut_DebuInfo : String = 'Ctrl+Shift+L'; // сочетание клавиш для показа системной информации об окне (имя класса, идентификатор объекта и т.п)
 IBISShortCut_Audit    : String = 'Ctrl+Shift+H'; // сочетание клавиш для вызова окна аудита

Окно с кнопками операций

Назначение показ кнопок с различными списками, без реализации самих списков

- Название должно заканчиваться на Tab - наследник от TdxRibbonForm

см MIS3. Иерархия классов

Окно список

  • Отображает один список (список справочников, людей и т.п.)
  • имя pas-файлы должно заканчиваться на List
  • умеет реагировать на сообщения об обновлении

Дизайн

  • FormStyle = fsMDIChild
  • tdxbarmanager
  • TdxRibbon

WinList.png см MIS3. Иерархия классов

WinOnTask

- наследник от WinOnTask (кнопка на панели задач) - название заканчиваем на WOT (WinOnTask)

IBIS WOT1.png

Дизайн

  • Наследуем от TfmWinOnTask
  • TdxBarmanager
  • dxRibbon.showheaders := False (в дизайнере)

см MIS3. Иерархия классов

Правила дизайна Ribbon

  • Подпись к группе кнопок должна быть существительным с Большой буквы (Файлы, Пользователи, Расписание, Документы, Действия и т.п.)
  • Подписи к кнопкам должны по возможности означать действие (глагол в совершенной форме) над объектом который указан в заголовке группы. Например: Сохранить, Редактировать, Закрыть, Удалить. Для двухсловных действий (Показать фильтр, Показать расписание) допускается пропуск действия. Т.е. Указываем просто Фильтр, Расписание и т.п. По возможности подпись к кнопке должна состоять из одного слова.

Модальное окно

Ibis modal.png

Простое модальное окно

  • Panel
    • Align := paBottom
    • Height := 41
  • Кнопки
    • Width := 75
    • Top := 8
    • Height := 25
    • Anchors := [akTop,akRight]
    • Кнопка "Отмена" Left := Panel.Width-15-75 := Panel.Width -90
    • Кнопка "ОК" Left := Panel.Width-(15-75)*2 := Panel.Width -180 расстояние между кнопками = 15
    • Кнопки TcxButton, Skin = ultraflat, skin = UserSkin
    • Кнопка OK имеет значение Default := True;

Поддержка скинов

Проект внутри себя не должен содержать никаких скинов. Все скины находятся во внешних файлах в папке skins и подгружаются динамически. Поэтому в исходных кодах в секции uses не должно быть следующих файлов (компиляция на сервере не пройдет):

  • dxSkinBlack.dcu
  • dxSkinBlue.dcu
  • dxSkinBlueprint.dcu
  • dxSkinCaramel.dcu
  • dxSkinCoffee.dcu
  • dxSkinDarkRoom.dcu
  • dxSkinDarkSide.dcu
  • dxSkinDevExpressDarkStyle.dcu
  • dxSkinDevExpressStyle.dcu
  • dxSkinFoggy.dcu
  • dxSkinGlassOceans.dcu
  • dxSkinHighContrast.dcu
  • dxSkiniMaginary.dcu
  • dxSkinLilian.dcu
  • dxSkinLiquidSky.dcu
  • dxSkinLondonLiquidSky.dcu
  • dxSkinMcSkin.dcu
  • dxSkinMetropolis.dcu
  • dxSkinMetropolisDark.dcu
  • dxSkinMoneyTwins.dcu
  • dxSkinOffice2007Black.dcu
  • dxSkinOffice2007Blue.dcu
  • dxSkinOffice2007Green.dcu
  • dxSkinOffice2007Pink.dcu
  • dxSkinOffice2007Silver.dcu
  • dxSkinOffice2010Black.dcu
  • dxSkinOffice2010Blue.dcu
  • dxSkinOffice2010Silver.dcu
  • dxSkinOffice2013DarkGray.dcu
  • dxSkinOffice2013LightGray.dcu
  • dxSkinOffice2013White.dcu
  • dxSkinPumpkin.dcu
  • dxSkinSeven.dcu
  • dxSkinSevenClassic.dcu
  • dxSkinSharp.dcu
  • dxSkinSharpPlus.dcu
  • dxSkinSilver.dcu
  • dxSkinSpringTime.dcu
  • dxSkinStardust.dcu
  • dxSkinSummer2008.dcu
  • dxSkinTheAsphaltWorld.dcu
  • dxSkinValentine.dcu
  • dxSkinVS2010.dcu
  • dxSkinWhiteprint.dcu
  • dxSkinXmas2008Blue.dcu

Для того чтобы Delphi не включала эти файлы автоматически существует галочка Project -> ModifySkinOption. (можно просто обновить файл из svn policlinic.skincfg)