Иерархия классов MIS3 — различия между версиями
Admin (обсуждение | вклад) |
|||
| (не показано 10 промежуточных версий 4 участников) | |||
| Строка 3: | Строка 3: | ||
== TfmIBISTab == | == TfmIBISTab == | ||
| − | Предок для форм которые реализуют набор кнопок на главном RIBBON. Основной функционал мержить на главный RIBBON закладки с кнопками вызова других форм. Наследники от этой формы должны именоваться по правилу: '''Tfm<имя cущьности>Tab'''. Например TfmTeamTab | + | Предок для форм которые реализуют набор кнопок на главном RIBBON. Основной функционал мержить (объединять) на главный RIBBON закладки с кнопками вызова других форм. Наследники от этой формы должны именоваться по правилу: '''Tfm<имя cущьности>Tab'''. Например TfmTeamTab |
=== Создание === | === Создание === | ||
| Строка 11: | Строка 11: | ||
2. Добавляем: | 2. Добавляем: | ||
| − | + | interface | |
| − | interface | + | uses fIBISWinTab |
| − | |||
| − | |||
3. Наследуем | 3. Наследуем | ||
| − | + | type | |
| − | type | + | TfmVaccinDictTAB = class(fmIBISWinTab) |
| − | |||
| − | |||
4. Добавляем в implementation | 4. Добавляем в implementation | ||
| − | + | implementation | |
| − | implementation | + | uses |
| − | uses | ||
fMIS3FrameworkUtil,dMain, dImages; | fMIS3FrameworkUtil,dMain, dImages; | ||
| − | |||
4. Секцию инициализации | 4. Секцию инициализации | ||
| − | |||
initialization | initialization | ||
MIS3WintabList.Add('TfmVaccinDictTAB'); | MIS3WintabList.Add('TfmVaccinDictTAB'); | ||
RegisterClass(TfmVaccinDictTAB ); | RegisterClass(TfmVaccinDictTAB ); | ||
| − | |||
| Строка 69: | Строка 61: | ||
2. Добавляем: | 2. Добавляем: | ||
| − | |||
interface | interface | ||
uses fWinOnTask,uSFMessages | uses fWinOnTask,uSFMessages | ||
| − | + | ||
3. Наследуем | 3. Наследуем | ||
| − | + | ||
type | type | ||
TfmMedDocWOT = class(TfmWinOnTask) | TfmMedDocWOT = class(TfmWinOnTask) | ||
| − | |||
4. | 4. | ||
| − | |||
implementation | implementation | ||
uses | uses | ||
dImages, dMain, uSFVCLUtils | dImages, dMain, uSFVCLUtils | ||
| − | |||
5. Прописываем конструктор | 5. Прописываем конструктор | ||
| − | |||
public | public | ||
constructor Create(AOwner:TComponent;AID:Integer=0);overload; | constructor Create(AOwner:TComponent;AID:Integer=0);overload; | ||
| − | |||
| − | |||
constructor .. .Create(AOwner: TComponent; AID: Integer; | constructor .. .Create(AOwner: TComponent; AID: Integer; | ||
AREadOnly: Boolean); | AREadOnly: Boolean); | ||
| Строка 97: | Строка 82: | ||
inherited Create(AOwner); | inherited Create(AOwner); | ||
dmImages.il16.GetIcon(45,Self.Icon); // Себе иконку | dmImages.il16.GetIcon(45,Self.Icon); // Себе иконку | ||
| − | |||
6. Прописываем процедуру | 6. Прописываем процедуру | ||
| − | + | ||
procedure OpenMedDoc(AID:Int64); | procedure OpenMedDoc(AID:Int64); | ||
var | var | ||
| Строка 113: | Строка 97: | ||
end; | end; | ||
end; | end; | ||
| − | |||
7. Дальше все как обычно | 7. Дальше все как обычно | ||
| Строка 119: | Строка 102: | ||
* Добавляем TdxRibbon, дизайним кнопки | * Добавляем TdxRibbon, дизайним кнопки | ||
| − | === Создание из шаблона == | + | === Создание из шаблона === |
| − | + | # Копируем два файла IBIS\trunk\ER3\Source\SRCTemplate\fTileButtonWOT.* | |
| − | + | # Заменяем в обоих файлах TileButton на нужное | |
| − | + | # Переименовываем оба файла. | |
| − | + | # Подключаем в проект | |
| − | + | # для BIGInt немного правим процедуры | |
== TfmIBISWinList == | == TfmIBISWinList == | ||
| Строка 144: | Строка 127: | ||
1. Создаем новую форму VCL (убираем из autocreate) | 1. Создаем новую форму VCL (убираем из autocreate) | ||
2. Добавляем: | 2. Добавляем: | ||
| − | |||
interface | interface | ||
uses fIBISWinList,uSFMessages | uses fIBISWinList,uSFMessages | ||
| − | + | ||
3. Наследуем | 3. Наследуем | ||
| − | |||
type | type | ||
TfmPacAmbList = class(TfmIBISWinList) | TfmPacAmbList = class(TfmIBISWinList) | ||
| − | |||
4. Добавляем в implementation | 4. Добавляем в implementation | ||
| − | |||
implementation | implementation | ||
uses | uses | ||
fMIS3FrameworkUtil,dMain, dImages; | fMIS3FrameworkUtil,dMain, dImages; | ||
| − | |||
5. Прописываем секцию инициализации | 5. Прописываем секцию инициализации | ||
| − | |||
initialization | initialization | ||
RegisterClass(TfmPacAmbList); | RegisterClass(TfmPacAmbList); | ||
| − | MIS3RibbonTabWinValues.Add('Списки пациентов=TfmPacAmbList'); | + | MIS3RibbonTabWinValues.Add('Списки пациентов=TfmPacAmbList'); // для вызова по умолчанию |
| − | |||
6. Кладем на форму TdxBarManager, TdxRIBBON (лучше именно в этом порядке), добавляем закладку и кнопки. Прописываем свойства: | 6. Кладем на форму TdxBarManager, TdxRIBBON (лучше именно в этом порядке), добавляем закладку и кнопки. Прописываем свойства: | ||
| Строка 175: | Строка 151: | ||
* ICON (можно в конструкторе dmImages.il16.GetIcon(116,Self.Icon)) | * ICON (можно в конструкторе dmImages.il16.GetIcon(116,Self.Icon)) | ||
* Caption | * Caption | ||
| + | |||
| + | {{warning}} На событии onShow нельзя вызывать методы SetFocus у контролов. | ||
| + | |||
| + | {{warning}} Если есть OnCreate, OnClose , то они должны обязательно вызывать inherited | ||
| + | |||
| + | == TfmIBISaTopForm== | ||
| + | * Наследник формы TfmWinOnTask. форма поверх другой формы (но не модальная). Используется в формах выбора, редакторах сущностей (т.е. пока не выбрали что либо, вернуться на вызывающую форму нельзя). В отличии от модальной формы блокирует переключение только на вызывающую форму. | ||
| + | |||
[[Категория:Руководство программиста MIS3]] | [[Категория:Руководство программиста MIS3]] | ||
Текущая версия на 14:16, 26 марта 2018
Содержание
TfmIBISTab
Предок для форм которые реализуют набор кнопок на главном RIBBON. Основной функционал мержить (объединять) на главный RIBBON закладки с кнопками вызова других форм. Наследники от этой формы должны именоваться по правилу: Tfm<имя cущьности>Tab. Например TfmTeamTab
Создание
1. Создаем новую форму VCL (убираем из autocreate)
2. Добавляем:
interface uses fIBISWinTab
3. Наследуем
type TfmVaccinDictTAB = class(fmIBISWinTab)
4. Добавляем в implementation
implementation uses fMIS3FrameworkUtil,dMain, dImages;
4. Секцию инициализации
initialization
MIS3WintabList.Add('TfmVaccinDictTAB');
RegisterClass(TfmVaccinDictTAB );
5. Дальше все как обычно
Добавляем TdxBarmanager, прописываем ImageOption
Добавляем TdxRibbon, дизайним кнопки
TfmIBISBaseForm
- устанавливает шорткаты и иконки для кнопок RIRIBBON с заголовками:
- Добавить
- Редактировать
- Обновить
- Удалить
- Выбрать
- Закрыть
- Обрабатывает кнопку ESCAPE - если есть изменённые данные в актином контроле, то отменяет их, иначе закрывает форму
- CTRL+S вызывает обработчик кнопки "СОХРАНИТЬ"
- CTRL+ENTER вызывает обработчик кнопки "СОХРАНИТЬ И ЗАКРЫТЬ"
- поддерживает скины (а также изменение вида в зависимости от главной формы)
- свойство TagBig : Int64; // ID могуть быть очень большими, нужно чтобы отличать формы друг от друга
TfmWINOnTask
- весь функционал наследуемый от TfmIBISBaseForm и устанавливает стиль окна
Наследники от этого класса должны именоваться по правилу Tfm<имя сущности>WOT. Например: TfmTeamWOT, TfmTeamScheduleList
Создание
1. Создаем новую форму VCL (убираем из autocreate)
2. Добавляем: interface
uses fWinOnTask,uSFMessages
3. Наследуем
type
TfmMedDocWOT = class(TfmWinOnTask)
4. implementation uses
dImages, dMain, uSFVCLUtils
5. Прописываем конструктор
public constructor Create(AOwner:TComponent;AID:Integer=0);overload;
constructor .. .Create(AOwner: TComponent; AID: Integer;
AREadOnly: Boolean);
begin
inherited Create(AOwner); dmImages.il16.GetIcon(45,Self.Icon); // Себе иконку
6. Прописываем процедуру
procedure OpenMedDoc(AID:Int64); var
Form : TForm;
begin
Form:=FindFormByTag(TfmMedDocWOT,AID); if Form=nil then begin Form := TfmMedDocWOT.Create(Application,AID); Form.Show; end;
end;
7. Дальше все как обычно
- Добавляем TdxBarmanager, прописываем ImageOption
- Добавляем TdxRibbon, дизайним кнопки
Создание из шаблона
- Копируем два файла IBIS\trunk\ER3\Source\SRCTemplate\fTileButtonWOT.*
- Заменяем в обоих файлах TileButton на нужное
- Переименовываем оба файла.
- Подключаем в проект
- для BIGInt немного правим процедуры
TfmIBISWinList
- создает на главном RIBBON необходимые закладки
- управляет видимостью закладки (TAB) на главном RIBBON в зависимости от активности формы. Т.е. если окно становится активным, то становиться актновной соответсвующая закладка на RIBBON
- устанавливает imageindex и shortcut для следующих кнопок:
- Добавить (плюс на доп клавиатуре)
- Редактировать (F4)
- Обновить (F5)
- Закрыть (F12)
- УДАЛИТЬ (Shift+DEL)
- Фильтр (CTRL+F) - только shortcut
- дабл клик на gride вызывает кнопку редактировать
Имена наследников должны оканчиваться на LIST. Например TfmTeamList
Создание
1. Создаем новую форму VCL (убираем из autocreate) 2. Добавляем: interface
uses fIBISWinList,uSFMessages
3. Наследуем type
TfmPacAmbList = class(TfmIBISWinList)
4. Добавляем в implementation implementation uses
fMIS3FrameworkUtil,dMain, dImages;
5. Прописываем секцию инициализации initialization
RegisterClass(TfmPacAmbList);
MIS3RibbonTabWinValues.Add('Списки пациентов=TfmPacAmbList'); // для вызова по умолчанию
6. Кладем на форму TdxBarManager, TdxRIBBON (лучше именно в этом порядке), добавляем закладку и кнопки. Прописываем свойства:
- TdxBarManager.ImageOption
7. Не забываем менять следующие свойства у формы:
- ICON (можно в конструкторе dmImages.il16.GetIcon(116,Self.Icon))
- Caption
Внимание: На событии onShow нельзя вызывать методы SetFocus у контролов.
Внимание: Если есть OnCreate, OnClose , то они должны обязательно вызывать inherited
TfmIBISaTopForm
- Наследник формы TfmWinOnTask. форма поверх другой формы (но не модальная). Используется в формах выбора, редакторах сущностей (т.е. пока не выбрали что либо, вернуться на вызывающую форму нельзя). В отличии от модальной формы блокирует переключение только на вызывающую форму.
