Страница 1 из 1

[решено] tStatFile не сохраняет данные второго окна

СообщениеДобавлено: 19.08.2013 11:24:39
t-ea
На главной форме находится tStatFile1 и tButton1.
По нажатию на tButton1 показывается вторая форма (SecWnd) у которой statfile = Mainfo.tStatFile1.

1. После закрытия SecWnd в файле status.sta записана информация и о Mainfo, и о SecWnd, но после закрытия программы в status.sta остаётся только [Mainfo].

2. Если перед открытием SecWnd изменить размер Mainfo, например максимизировать окно, то при нажатии на tButton1, размеры Mainfo вернутся в первоначальное состояние.

Re: tStatFile не сохраняет данные второго окна

СообщениеДобавлено: 19.08.2013 13:04:04
mse
If the second form will not be destroyed before program end disable <secondwindow>.options fo_autoreadstat and fo_autowritestat, create the second form before the main form:
Код: Выделить всё
application.createform(tsecondform,secondform);
application.createform(tmainfo,mainfo);
application.run;


If the second form will be created and destroyed in program lifetime use an additional tstatfile for the second form, activate <secondstatfile>.options sfo_memory, set <secondstatfile>.filename to 'second.sta'. <secondstatfile> now loads and stores from/to an independent internal MSEgui named memory stream (see tmemorystreams in lib/common/kernel/msestat.pas).
In order to save memory files of additional tstatfile's in the main statfile set <mainstatfile>.savedmemoryfiles to '*.sta'.
The main form must exist before creating the additional forms:
Код: Выделить всё
application.createform(tmainfo,mainfo);
application.createform(tsecondform,secondform);
application.run;

For big applications it is recommended to use a data module for globally used components instead to place them in the main form.