お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"TObjectListの使い方"



D5から追加された(と思いますが(^^;)TObjectListの使用例です。
動的にStringGridを三つ生成してTObjectListのインスタンスで管理
ボタンを押すたびにランダムなStringGridのランダムなセルにランダムな
値を書き込みます。

 TListとの違いとしてはTObjectListをfreeするときに要素として持っている
オブジェクトをみんなfreeしてくれるのでTListのときみたいに自分で
freeするとエラーになります。

フォームにボタンを一つおいてそのボタンのOnClickとFormの
OnCreate OnDestroy を以下のように書きます。


unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Classes,
   Graphics, Controls, Forms, Dialogs,StdCtrls,
   contnrs,Grids;//最後の二つは自分で追加

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private 宣言 }
    List:TObjectList;
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var
  i:integer;
  SG:TStringGrid;
begin
  List:=TObjectList.Create;
  for i:= 0 to 2 do
  begin
    SG:=TStringGrid.Create(self);
    SG.Parent:=self;
    SG.Left:=0; //この辺はお好みで
    SG.Top:=i*120;
    List.Add(SG);
  end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  List.free;
end;

//ランダムなStringGridのランダムなセルにランダムな値を入れる
procedure TForm1.Button1Click(Sender: TObject);
var
  i,c,r:integer;
begin
  i:=Random(List.Count);
  with TStringGrid(List[i]) do
  begin
    c:=Random(ColCount);
    r:=Random(RowCount);
    Cells[c,r]:=IntToStr(Random(100));
  end;
end;
end.
☆☆☆  かわいいコードにゃ旅をさせよう いざサンプル蔵へ!! ☆☆☆
                                 00/05/13(土) 17:16 凛(MXB01744)

Original document by 凛              氏 ID:(MXB01744)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum