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

Сохранить несколько контролов в один файл

Delphi , Компоненты и Классы , Компоненты

Сохранить несколько контролов в один файл


{ 
 -> Question: 
 How can I store some TRichEdit components and TEdit Components in a single file? 

 -> Answer: 
 Use a filestream and a reader or writer object. 
 These ease the tasks of writing strings to a binary stream and reading them back. 
} 

{ 
 -> Frage: 
 Wie kann ich den Inhalt einiger TRichEdit und TEdit Komponenten in einer einzigen 
 Datei  speichern? 

 -> Antwort: 
 Verwende einen FileStraem und ein Reader/Writer Objekt. 
 Damit kann man leicht strings in einen binдren Stream speichern und zurьcklesen. 
} 

// Save routine 
// Speichern Routine 
procedure SaveEditcontrols(const FileName: string; const Controls: array of TCustomEdit); 
var 
  fs: TFilestream; 
  writer: TWriter; 
  i: Integer; 
  ss: TStringstream; 
begin 
  fs := TFilestream.Create(FileName, fmCreate); 
  try 
    writer := TWriter.Create(fs, 4096); 
    try 
      for i := Low(Controls) to High(Controls) do 
        if Controls[i] is TCustomRichedit then  
        begin 
          ss := TStringstream.Create(EmptyStr); 
          try 
            with TRichedit(Controls[i]) do  
            begin 
              Plaintext := False; 
              Lines.SaveToStream(ss); 
            end; 
            writer.WriteString(ss.Datastring); 
          finally 
            ss.Free; 
          end; 
        end 
      else 
        writer.WriteString(Controls[i].Text); 
    finally 
      writer.Free; 
    end; 
  finally 
    fs.Free; 
  end; 
end; 

// Load routine 
// Lade Routine 
procedure LoadEditcontrols(const FileName: string; const Controls: array of TCustomEdit); 
var 
  fs: TFilestream; 
  reader: Treader; 
  i: Integer; 
  ss: TStringstream; 
begin 
  fs := TFilestream.Create(FileName, fmOpenread or fmShareDenyWrite); 
  try 
    reader := Treader.Create(fs, 4096); 
    try 
      for i := Low(Controls) to High(Controls) do 
        if Controls[i] is TCustomRichedit then  
        begin 
          ss := TStringstream.Create(reader.ReadString); 
          try 
            with TRichedit(Controls[i]) do  
            begin 
              Plaintext := False; 
              Lines.LoadfromStream(ss); 
            end; 
          finally 
            ss.Free; 
          end; 
        end 
      else 
        Controls[i].Text := reader.ReadString; 
    finally 
      reader.Free; 
    end; 
  finally 
    fs.Free; 
  end; 
end; 

// Example to store 2 TRichEdits and 3 Edit Controls to one file 
// Beispiel, um  3 TRichEdits und 3 TEdit Controls in einer Datei zu speichern 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
  SaveEditControls('C:\temp\temp.dat', 
    [richedit1, richedit2, edit1, edit2, edit3]); 
end;

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


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


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

заголовок

e-mail

Ваше имя

Сообщение

Введите код




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



:: Главная :: Компоненты ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100
18.04.2024 14:56:33/0.042034149169922/0