Карта сайтаСсылкиКонтакты

Хостинг


Сохранение данных из ListBox во время выполнения

PDF Печать
Статьи

Этот пример не является законченной программой, просто основа использования сохранения данных из ListBox через TFileStream.

Данные из ListBox записываются в файл MyList.dat. Если файл не существует, программа создает его на диске.


unit main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, 
  Controls, Forms, Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Edit1: TEdit;
    Memo1: TMemo;
    procedure Edit1KeyPress(Sender: TObject; 
        var Key: Char);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; 
        var Action: TCloseAction);
    procedure ListBox1DblClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Edit1KeyPress(Sender: TObject; 
    var Key: Char);
begin
  if Key = #13 then begin
    Key := #0;
    ListBox1.Items.Add(Edit1.Text);
    Edit1.Text := '';
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  strm : TFileStream;
begin
  if FileExists('MyList.DAT') then begin
    strm := TFileStream.Create('MyList.DAT', fmOpenRead);
    strm.ReadComponent(ListBox1);
    strm.Free;
  end;
end;

procedure TForm1.FormClose(Sender: TObject; 
    var Action: TCloseAction);
var
  strm : TFileStream;
begin
  strm := TFileStream.Create('MyList.DAT', fmCreate);
  strm.WriteComponent(ListBox1);
  strm.Free;
end;

procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
  ListBox1.Items.Delete(ListBox1.ItemIndex);
end;

end.

Просто, не так ли?

Программа состоит из формы TForm1 и TEdit и TListBox, которые находятся на ней.
Имеется только два значащих метода: FormCreate и FormClose. В методе FormCreate запишите следующий код:


procedure TForm1.FormCreate(Sender: TObject);
var
  strm : TFileStream;
begin
  if FileExists('MyList.DAT') then begin
    strm := TFileStream.Create('MyList.DAT', fmOpenRead);
    strm.ReadComponent(ListBox1);
    strm.Free;
  end;
end;

Здесь программа проверяет наличие файла MyList.DAT при помощи вызова FileExists. Если файл существует, он считывается в ListBox, иначе ничего не происходит.

В методе FormClose запишите:


procedure TForm1.FormClose(Sender: TObject; 
    var Action: TCloseAction);
var
  strm : TFileStream;
begin
  strm := TFileStream.Create('MyList.DAT', fmCreate);
  strm.WriteComponent(ListBox1);
  strm.Free;
end;

Здесь программа записывает данные из ListBox в MyList.DAT, записывая поверх существующих данных в файле.


 

Добавить комментарий


Защитный код
Обновить