14. Параметры формы (TParamList)
Параметры используются для передачи сведений форме из другого модуля, для временного хранения значений, выполнения какого-либо действия.
Свойство Params
Параметры доступны через свойство Params класса TParamList. Доступ к параметрам осуществляется по имени. Параметр может хранить значение типа Variant и объект TObject. Если при присваивании значения параметру его нет в списке, то он добавляется автоматически. Если при чтении параметр не находится, то возвращается Null или nil.
Пример обращения к параметру:
Fm.Params.Values['Статус'] := 3; Fm.Params['Статус'] := 5; // Свойство Values является свойством по умолчанию и его можно не писать. Self.Params['Объект'].Object := AnyObj;
События OnSetParam/OnGetParam
Когда присваивается значение параметру, возникает событие OnSetParam:
TParamNotifyEvent = procedure(Sender: TObject; const ParamName: String);
OnGetParam того же типа, что и OnSetParam, возникает, когда читается значение параметра.
Подключив обработчики к этим событиям можно имитировать «свойства» классов. Т. е. при присваивании или чтении значения выполнять какие-нибудь действия внутри формы. Пример:
procedure SetParamHandler(Sender: TObject; const ParamName: String); begin if ParamName = 'тест' then begin // Какие-то действия end; end; procedure Form_Create; begin Self.Params.OnSetParam := @SetParamHandler; end;
В другом модуле:
… // Присваивание параметру значения вызовет в форме какие-то действия Fm.Params.Values['тест'] := 1; …