Показать сообщение отдельно
  #3  
Старый 26.10.2014, 03:53
Gareth Gareth вне форума
Активный
 
Регистрация: 21.03.2013
Адрес: Приднестровье
Сообщения: 202
Версия Delphi: Delphi 7
Репутация: 10
Вопрос

Цитата:
Сообщение от Alegun
А что, сохранение через потоковый WriteComponent вам не подходит разве?
Тогда действительно, при завершении работы сборки можно всё сохранить в ini-файле, посредством циклического перебора компонентов на форме, их класс, размер, позицию, название etc., гимора особого не будет, поскольку это всё автоматом происходит, а при старте по этим данным их воссоздавать - проблема лишь в динамически подключаемых процедурах обработки сообщений, но это тоже не очень сложно, при грамотной разработке их содержимого, и если не ошибаюсь, то пример подобного я вам уже приводил ранее
У вас не остался еще тот проэктик, который вы мне давали, в той теме?
Есть несколько нюансов, которые я не могу понять, а проэкт уже удален с файлообменника, да и у меня его нету уже.

Почитал про WriteComponent / ReadComponent, посмотрел примеры, попробовал, и ничего не понял. Всё потому что примеры не на runtime компонентах, а на обычных..
Куда сохраняется вся инфа ? В ини мы делаем сам файлик .ini, а с Filestream куда они кладутся ?

Мне бы тот ваш проэкт, который вы мне давали... ImgIni.rar, возможно оттуда я бы вычерпнул нужную информацию для себя (по крайней мере сейчас, когда хоть немного начал понимать).

Не затруднит ли вас написать небольшой пример, с использованием динамического компанента ?

Вот допустим на кнопку я создаю до 50 панелей и 50 image (1 клик - 1 панель, 1 image), не понимаю как всё это сохранить, с учетом того, что это создано в runtime, а может и не создано.

Код:
var
  Form1: TForm1;
  panel: array [1..50] of TsPanel;

....
procedure TForm1.sButton1Click(Sender: TObject);
var 
  nPanel:=nPanel+1;
  toppanel:=toppanel+47;
  leftpanel:=0;
  widthpanel:=ClientWidth;
  heightpanel:=45;

begin
panel[nPanel]:=TsPanel.Create(form1);   
panel[nPanel].Parent:=form1;
panel[nPanel].Top:=toppanel;
panel[nPanel].Left:=leftpanel;
panel[nPanel].Width:=widthpanel;
panel[nPanel].Height:=heightpanel;
//-----------
{-----------------IMG--------------------}
img[nPanel]:=TImage.Create(panel[npanel]);
img[nPanel].Parent:=panel[npanel];
img[npanel].Stretch:=true;
img[nPanel].Top:=2;
img[nPanel].Left:=20;
img[nPanel].Width:=60;
img[npanel].Height:=40;
end;

В крайнем случае, может подкинете статью о том как работать с Writecomponent именно для Runtime ?

Извиняюсь за свою назойливость и тупизм...
Ответить с цитированием