« ☆TListを使ったリスト No2 | トップページ | ☆ListViewのDrag&Drop »

☆TListを使ったリスト No3


それではMySampleClassesが、きちんと動作しているかどうか確かめてみます。
unit Unit1;

interface

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

type

  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
    MyBookList1, MyBookList2: TMyBookList;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  MyBookList1 := TMyBookList.Create;
  MyBookList2 := TMyBookList.Create;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  MyBookList1.Free;
  MyBookList2.Free;
end;

// test1
procedure TForm1.Button1Click(Sender: TObject);
var
  I: Integer;
  S1, S2: String;  
begin
  MyBookList1.Clear;
  MyBookList2.Clear;

  // MyBookList1に追加
  MyBookList1.Add(TMyBook.Create('Delphi オブジェクト指向プログラミング','塚越一雄'));
  MyBookList1.Add(TMyBook.Create('delphi-fan','hiderin'));
  MyBookList1.Add(TMyBook.Create('コンピュータ・アルゴリズム事典','奥村晴彦'));

  // MyBookList1から削除
  MyBookList1.Delete(1); // delphi-fan

  // MyBookList1に挿入
  MyBookList1.Insert(0,TMyBook.Create('Delphi6プログラミングバイブル','Marco Cantu'));

  // MyBookList2にMyBookList1のデータをコピーする。
  MyBookList2.Assign(MyBookList1);

  // MyBookList2にきちんとコピーされたか確認する。
  Memo1.Lines.Clear;
  for I := 0 to MyBooKList2.Count - 1 do
  begin
    S1 := MyBookList2[I].BookName;
    S2 := MyBookList2[I].Author;
    Memo1.Lines.Add(Concat(S1, #9, S2));
  end;
end;

// test2
procedure TForm1.Button2Click(Sender: TObject);
var
  I: Integer;
  S1, S2: String;
begin
  // SaveToFile---Stream関係をチェックする。
   MyBookList2.SaveToFile('c:\aaa.dat');

  // LoadFromFile---Stream関係をチェックする。
  MyBookList1.LoadFromFile('c:\aaa.dat');

  // ファイルから読み込みできたかチェックします。
  Memo1.Lines.Clear;
  for I := 0 to MyBooKList1.Count - 1 do
  begin
    S1 := MyBookList1[I].BookName;
    S2 := MyBookList1[I].Author;
    Memo1.Lines.Add(Concat(S1, #9, S2));
  end;
end;

end.
一応、動作しているようですね。でも、『TListを使ったリスト No1~No3』まで夜中に一気に適当に書いたので、どこかに間違いがあるかも知れないので気をつけて下さい(笑)

又、専用の追加メソッドを作れば、いちいちTMyBookを生成させなくてもBookNameとAuthorを追加できますね。 いろいろな方法、いろいろな形で作ることができるので、アプリに最適なものを考えていけばよいと思います。

TListを使ったリスト No1
TListを使ったリスト No2
TListを使ったリスト No3

|

« ☆TListを使ったリスト No2 | トップページ | ☆ListViewのDrag&Drop »