レコード型

解決


初心者  2006-09-02 04:08:30  No: 23079

初歩的な質問でごめんなさい。
レコード型を使いたいんですが、型の宣言てどこに記述すればいいんでしょうか?

type
  TfrmMain = class(TForm)
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

  type//ここでいいんでしょうか?
  TPrintData = record
    Enable  :Boolean;
    Name    :String;
    Address :String;
  end;

本を読んでも宣言の仕方しか載ってなくて…


ん?  2006-09-02 04:48:29  No: 23080

イイですよ。

TfrmMainで使いたい型であれば、TfrmMainの宣言の上に移動すればよいのです。
おおきなものは、以下の二種類に分別される・・・と思っています。

type
  //グローバルな型宣言
  //このユニットを、別のユニットでusesすると使える
  TPrintData = Record
  (略)

  TfrmMain = class(TForm)
  private
    { Private 宣言 }
    PrintData: TPrintData;

  (略)

implementation

type
  //ローカルな型宣言
  //このユニットを、別のユニットでusesしても使えない
  //このユニット内かつ、この宣言以降でしか使用できない
  TPrintData2 = Record


初心者  2006-09-05 06:24:18  No: 23081

TPrintData2 = record
は、これ以降のUnit内のどの関数、手続きからも流用できるんですか?


orz  2006-09-05 06:38:42  No: 23082

implementation 以下は、記述した順です。

procedure TForm1.Button1Click(
var
//これはTPrintData2の宣言が下にあるので不可
  r2: TPrintData2;   
begin

end;

> type
>   //ローカルな型宣言
>   //このユニットを、別のユニットでusesしても使えない
>   //このユニット内かつ、この宣言以降でしか使用できない
>   TPrintData2 = Record

procedure TForm1.Button2Click(
var
  r2: TPrintData2;  //これはOK
begin

end;


orz  2006-09-05 06:39:23  No: 23083

> は、これ以降のUnit内のどの関数、手続きからも流用できるんですか?
上記の記述位置さえ間違えなければ、使えます。


初心者  2006-09-05 06:42:58  No: 23084

なるほど!
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加