Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Автоматическое сохранение или загрузка установок пользователя

Delphi , Файловая система , Файлы

Автоматическое сохранение или загрузка установок пользователя

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

private
   procedure SaveConfig(fn: string);
   procedure LoadConfig(fn: string);
 end;

 implementation

 {....}

 procedure TForm1.SaveConfig(fn: string);   // fn: Filename where to save the stream 
{ 
 Saves all TWinControl-descendants of all Pages of a PageControl in a stream 
 can easy be used to save userdefined Options 
 Place a new control to the PageControl and it will be saved to the stream, without 
 any additional codeline 

 Speichert alle Abkommlinge von TWinControl auf allen Seiten eines PageControls 
 in ein File 
 Erleichtert das Speichern von benutzerdefinierten Optionen 
 Einfach ein neues Control auf das PageControl setzen und es wird ohne zusatzlichen 
 Code gespeichert 
}
     var
       Stream: TFileStream;
       i, j: Integer;
       ObjName: string[255];
     begin
       Stream := TFileStream.Create(fn, fmCreate);
       try
         Stream.Position := 0;
         // Walk throug every Control on every Page of a PageControl 
        // Alle Controls auf allen Pages eines PageControls durchlaufen 
        for j := 0 to PageControl.PageCount - 1 do
         begin
           for i := 0 to PageControl.Pages[j].ControlCount - 1 do
           begin
             if PageControl.Pages[j].Controls[i] is TWinControl then
             begin
               // If the control is a descendant of TWinControl, then save it in the 
              // stream incl. name and length 
              // Wenn das Control von TWinControl abstammt, dann mit Namen und Lange 
              // in den Stream speichern 
              ObjName := PageControl.Pages[j].Controls[i].Name;
               Stream.WriteBuffer(ObjName, Length(ObjName) + 1);
               Stream.WriteComponent(PageControl.Pages[j].Controls[i]);
             end;
           end;
         end;
       finally
         Stream.Free;
       end;
     end;

     procedure TForm1.LoadConfig(fn: string);  // fn: Filename from where to load the stream 
      // Loads the controls back from the stream 
      // Ladt aus dem gespeicherten Stream den Zustand der Controls zuruck 
    var
        Stream: TFileStream;
       ObjName: string[255];
       ObjNameLen: Byte;
       i, j: Integer;
     begin
       Stream := TFileStream.Create(fn, fmOpenRead or fmShareDenyNone);
       try
         Stream.Position := 0;
         // walk through the stream 
        // durch den ganzen Stream gehen 
        while Stream.Position do
         begin
           try
             // get objectname 
            // Objektname holen 
            Stream.Read(ObjName[0], 1);
             ObjNameLen := Byte(ObjName[0]);
             Stream.Read(ObjName[1], ObjNameLen);
           finally
           end;
           // Search the control on the PageControl 
          // Das Control auf dem PageControl suchen 
          for j := 0 to PageControl.PageCount - 1 do
           begin
             for i := 0 to PageControl.Pages[j].ControlCount - 1 do
             begin
               if PageControl.Pages[j].Controls[i] is TWinControl then
               begin
                 if ObjName = PageControl.Pages[j].Controls[i].Name then
                 begin
                   try
                     if PageControl.Pages[j].Controls[i] is TCheckbox then
                       // TCheckbox has to be set to False 
                      // TCheckbox muss zuerst auf False gesetzt werden 
                      (PageControl.Pages[j].Controls[i] as TCheckbox).Checked := False;
                     // load control 
                    // Control laden 
                    Stream.ReadComponent(PageControl.Pages[j].Controls[i]);
                   finally
                   end;
                 end;
               end;
             end;
           end;
         end;
       finally
         Stream.Free;
       end;
     end;


     { Save}
     procedure TForm1.Button2Click(Sender: TObject);
     begin
       SaveConfig('pagecontrol.dat');
     end;

     { Load}
     procedure TForm1.Button1Click(Sender: TObject);
     begin
       LoadConfig('pagecontrol.dat');
     end;

Статья Автоматическое сохранение или загрузка установок пользователя раздела Файловая система Файлы может быть полезна для разработчиков на Delphi и FreePascal.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Файлы ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100
20.04.2024 17:55:18/0.00095391273498535/0