Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2010, 23:10   #1
Pypkin30159
Пользователь
 
Регистрация: 03.04.2010
Сообщений: 19
По умолчанию Сохранение динамически созданных компонентов в ini

Помогите написать сохранение и загрузку динамически созданных закладок в PageControl, компонентов и их свойств. Прочитал довольно много статей ни к чему не привело. Время уже поджимает, буду привелико благодарен.
Вот что у меня создается динамически.
Код:
Var
 Name:Word;
  IDTab:integer;
  tn:TTabSheet;
  Dbg:TDBGrid;
  Dbn:TDBNavigator; 
  DS:TDataSource;
  CDS:TClientDataSet;
Код:
procedure TForm1.N3Click(Sender: TObject);
 begin
  NameTab:='';
  form2.showmodal;
   if length(trim(NameTab))>0 then begin
      tn:=TTabSheet.Create(PageControl1);
      tn.Name:='MyTab'+inttostr(IDTab);
      tn.Caption:=NameTab;
      IDTab:=IDTab+1;
      tn.PageControl:=PageControl1;
      CDS:=TClientDataSet.Create(PageControl1);
      DS:=TDataSource.Create(PageControl1);
      DS.DataSet:=CDS;
      Dbg:=TDBGrid.Create(PageControl1);
      Dbg.Parent:=tn;
      Dbg.Align:=alClient;
      Dbg.DataSource:=DS;
      Dbn:=TDBNavigator.Create(PageControl1);
      Dbn.Parent:=tn;
      Dbn.Align:=alBottom;
      Dbn.DataSource:=DS;
      CopyFileEx(PChar('Sistem.cds'),PChar('1.cds'),nil,nil,nil,COPY_FILE_FAIL_IF_EXISTS);
      RenameFile('1.cds',NameTab+'.cds' );
      CDS.FileName:=NameTab+'.cds';
      CDS.Active:=True;
    end;
 end;

Последний раз редактировалось Pypkin30159; 14.09.2010 в 23:15.
Pypkin30159 вне форума Ответить с цитированием
Старый 15.09.2010, 09:35   #2
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Почему обязательно в ини? Можно и свой формат "замутить".

А вообще все это сделать можно, но код будет лишен "красивости".
Достаточно обойти все контролы на вкладках в цикле и сделать ветвление в зависимости от компонента, чьи свойства сохраняются. В каждой ветке этого ветвления написать сохранение нужных свойств компонентов (положение, цвет, заголовок и т.д.). Т.е у каждого типа контрола свой набор сохраняемых свойств.

Вот, вобщем-то, нужная последовательность.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 15.09.2010, 16:42   #3
Pypkin30159
Пользователь
 
Регистрация: 03.04.2010
Сообщений: 19
По умолчанию

Мне требуется сохранять только в ini ибо это задание, помогите написать сохранение и загрузку. Я прочитал много статей и смог добиться только сохранения закладок вот код:
Сохранение
Код:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
 Ini := TIniFile.Create(extractfilepath(Application.ExeName)+'Ini.ini');
 Ini.WriteInteger('Pages','Count',PageControl1.PageCount - 1);
 for i := 0 to PageControl1.PageCount - 1 do
  Ini.WriteString('Pages','Page' + IntToStr(i),PageControl1.Pages[i].Caption);
end;
Загрузка:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
 Ini := TIniFile.Create(extractfilepath(Application.ExeName)+'Ini.ini');
 cnt := Ini.ReadInteger('Pages','Count',0);
 for i := 0 to cnt do
  begin
   TS := TTabSheet.Create(Self);
   TS.PageControl := PageControl1;
   TS.Caption := Ini.ReadString('Pages','Page' + IntToStr(i),'');
  end;
end;
Но дальше я не могу понять как сохранять компоненты и загружать. Помогите пожалуйста.
Pypkin30159 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение динамически созданных объектов Marsel737 Общие вопросы Delphi 25 15.12.2009 14:24
Свойства динамически созданных объектов. Dorithur Общие вопросы Delphi 4 12.12.2009 15:35
Обработка событий динамически созданных объектов в С++ Builder Shafty Помощь студентам 1 26.02.2009 16:11
Метка в динамически созданных пунктах MainMenu Alter Компоненты Delphi 4 30.06.2008 22:51