Создаем новую форму :
File -> New -> Form -> Simple Form ->
На запрос имени файла - вводим "featureseditform" и подтверждаем -> автоматически создается форма :
"featureseditfo"
procedure tfeatureseditfo.featureseditfocreated(
const sender: TObject);
begin
application.createdatamodule(trefsdatamo, refsdatamo);
commonrefseditfo1.dsContents.dataset := grdFeatures.datasource.dataset;
end;
procedure tfeatureseditfo.featureseditfodestroyed(
const sender: TObject);
begin
refsdatamo.free;
end;
Не забудем включить в "uses" секцию "implementation" файла "featureseditform.pas" модуль "refsdatamodule" :
implementation
uses
featureseditform_mfm,
// предоставляет тип "trefsdatamo" и объект "refsdatamo"
refsdatamodule
;
Переключаемся на отображение формы "refsdatamo" и выбираем "qryFeatures" :
Вновь возращаемся на форму "featureseditfo" ( выбрав файл "featureseditform.pas", и далее, если необходимо - нажав "F12" ).
Щелкнув на форме правой кнопкой, открыть меню, и, командой "Insert submodule" - вставить в форму субмодуль "commonrefseditform" . При необходимости - подогнать размер, чтобы исчезли полосы прокрутки.
Уронить на "featureseditfo" компонент DB -> tdbwidgetgrid, и установить для него место и размер как у "planetseditfo -> grdPlanets" :
name := grdFeatures
procedure tfeatureseditfo.grdfeaturesupdaterowdata(
const sender: tcustomgrid;
const arow: Integer; const adataset: TDataSet);
begin
case adataset.updatestatus of
usInserted: sender.rowcolorstate[arow]:= 0;
usModified: sender.rowcolorstate[arow]:= 1;
else
sender.rowcolorstate[arow]:= 255;
end;
end;
и не забудьте добавить нужные "unit" -ы в секцию "interface -> uses" :
interface
uses
msegui,mseclasses,mseforms,commonrefseditform,msedbedit,
msegrids,
db
;
Теперь создадим и опишем столбцы "grdFeatures", подлежащие просмотру и редактированию.
Уронить на "grdFeatures" компонент DB -> tdbstringedit :
name:= seFeature
Настроить появившийся столбец таблицы
grdFeatures :
Осталось сделать вызов "featureseditfo" через главное меню программы.
Переключиться на дизайн "mainfo" ( файл "main.pas" ).
Уронить в любом незарисованном месте "mainfo" компонент "GUI -> taction" :
Name:= actFeaturesEdit
procedure tmainfo.featureseditexecute(const sender: TObject);
begin
try
application.createform(tfeatureseditfo, featureseditfo);
if featureseditfo.show(true) = mr_windowclosed then begin
qryPersons.active:= true;
end;
finally
featureseditfo.free;
end;
end;Не забудьте добавить ссылку на файл "featureseditform" в секцию "interface" файла "main.pas" :
interface
uses
msegui,mseclasses,mseforms,msepqconnection,msesqldb,msedb,
msedbedit,mseactions,msesimplewidgets,msemenus,db,msegrids,
planetseditform,
continentseditform,
countrieseditform,
featureseditform
;
Настроить вызов "actFeaturesEdit" из основного меню формы приложения ( mainfo ):
mnuMain :
Финальный вид формы редактора списка черт характера :
в дизайне :
и во время работы программы:
Данный ( черты характера -> featureseditform ) справочник - почти полный аналог вышерассмотренного справочника планет.