http://forum.hiasm.com/post/224759
Но так как при обновлении с svn приходится всё заново настраивать (и не только это, ведь есть ещё нестандартные компоненты), решил избавиться от изменений в win.pas wincontrol...
И просто сделать IC для таковой загрузки/сохранения.
andrestudio писал(а):
з.ы у меня ошибка RuntimeError при закрытии (может из за того что win.pas у меня другой).Странно. Это может быть, если точка не подключена, у меня никаких ошибок нет. А win, кстати, там и не нужен, я его уже убрал из uses.
flint2 писал(а):
У меня, как мне кажется, похожая задача.Есть какой-то "главный" кубик и куча периферийных.
В "главном" кубике есть список, в который при старте программы, периферийные кубики передают свои "имена" после чего главный кубик вызывает одну и ту-же процедуру в периферийных кубиках согласно списка. Конечно можно на точку onCreate главной формы повесить хаб, но хочется ...
Тоже достойное применение.
--- Добавлено в 2017-11-24 18:58:39
andrestudio, а такой будет выдавать ошибку:
Add(InlineCode,11882593,294,273)
{
@Hint=#59:Модуль загрузки/сохранения параметров в ini-файл SRData 2.0|
DataPoints=#5:dtPH_|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|31: fOldOnClose:TOnEventAccept;|17: ini:PIniFile;|20: im:TIniFileMode;|19: procedure Init;|58: procedure onCloseApp(Sender:PObj; var Accept:Boolean);|26: procedure SRData_3042;|9: public|45: //PHandle всех компонентов для сохранения|21: dtPH_: THI_Event;|0:|23: constructor Create;|5: end;|0:|14:implementation|0:|31:constructor THiAsmClass.Create;|5:begin|18: inherited Create;|15: InitAdd(Init);|4:end;|0:|27:procedure THiAsmClass.Init;|5:begin|20: fOldOnClose := nil;|64: if Assigned(Applet.OnClose) then fOldOnClose := Applet.OnClose;|30: Applet.OnClose := onCloseApp;|15: im := ifmRead;|13: SRData_3042;|4:end;|0:|66:procedure THiAsmClass.onCloseApp(Sender:PObj; var Accept:Boolean);|5:begin|16: im := ifmWrite;|13: SRData_3042;|58: if Assigned(fOldOnClose) then fOldOnClose(Sender,Accept);|4:end;|0:|34:procedure THiAsmClass.SRData_3042;|5:begin|72: ini := OpenIniFile(GetStartDir + 'SRData.ini'); //Указать имя ini-файла|16: ini.Mode := im;|52: ini.Section := 'fields'; //Указать секцию ini-файла|57: //Указать точки данных, ключи и соотв. свойства объектов|81: ReadControl(dtPH_,'').Text := ini.ValueString('txt',ReadControl(dtPH_,'').Text);|3: //|19: Free_And_Nil(ini);|4:end;|0:|4:end.|
link(dtPH_,13134892:PHandle,[])
}
Add(Edit,13134892,287,217)
{
Left=20
Top=20
Width=200
Text=""
Point(PHandle)
}
Если нет, то проблема м.б. в том, что в прошлом коде fOldOnClose не обнулялся в Init.