Dim 変数定義
Dimは変数の定義に使用します。Delphiでは var節で変数を宣言します。 VBとは微妙に違うので気をつけてください。変数は var節だけで宣言できます。ですので処理の途中で宣言するといった事はできません。宣言していない変数は使用できません。
■ var節で変数を宣言している例 |
procedure TForm1.Button1Click(Sender: TObject); const WeekName : array [0..6] of string = ('日','月','火','水','木','金','土'); var datBirthday : TDateTime; {TDateTime型の変数 datBirthday} intWeek : integer; {integer型の変数 intWeek} begin //曜日を求める日付 datBirthday := StrToDate('1998/9/18'); //何曜日? intWeek := DayOfWeek(datBirthday); //表示 Label1.Caption := DateToStr(datBirthDay) + 'は' + WeekName[intWeek - 1] + '曜日です。'; end; |
同じ型なら以下のように宣言することも可能です。Delphiでは 型の指定は必須です。
var intYY, intMM, intDD : integer; |
前回の例ではその手続き(procedure Button1Click)の中だけで有効な ローカル変数として宣言されます。
では、ユニット内(フォーム内)のどこででも有効な変数の定義は どうするのでしょうか?
VBではそのフォームのGeneralに宣言します。Delphiではユニット の implementation部に宣言すればよいのです。
Delphiのソースの上の方に、この implementation部はあります。
■ implementation部に変数を宣言する例 |
unit Main; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; type TfrmMain = class(TForm) StatusBar1: TStatusBar; btnCut: TPanelButton; btnPaste: TPanelButton; procedure FormCreate(Sender: TObject); procedure btnPasteClick(Sender: TObject); procedure btnCutClick(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var frmMain: TfrmMain; implementation var blnEdit : boolean; blnCopy : boolean; strDate : array [0..11] of String; sltMemo : TStringList; {$R *.DFM} |
この場合、変数はクラス(TForm)のメンバではなくユニットの変数になります。フォームのメンバとして扱いたい場合は TFormの Privateに宣言します。
■ TFormのメンバとして宣言した例 |
type TfrmMain = class(TForm) StatusBar1: TStatusBar; btnCut: TPanelButton; btnPaste: TPanelButton; procedure FormCreate(Sender: TObject); procedure btnPasteClick(Sender: TObject); procedure btnCutClick(Sender: TObject); private { Private 宣言 } blnEdit : boolean; blnCopy : boolean; strDate : array [0..11] of String; sltMemo : TStringList; public { Public 宣言 } end; |
次に全ユニットで参照可能なグローバル変数の定義の方法です。 VBではPublicやGlobalで宣言します。Delphiではユニットの
Interface部に宣言する方法があります。また、フォームのメンバとしてPublic に宣言する方法があります。
(フォームのメンバとした場合はフォームのインスタンスが無いと使用できません。)
■ グローバル変数を宣言した例 |
unit Main; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; type TfrmMain = class(TForm) StatusBar1: TStatusBar; btnCut: TPanelButton; btnPaste: TPanelButton; procedure FormCreate(Sender: TObject); procedure btnPasteClick(Sender: TObject); procedure btnCutClick(Sender: TObject); private { Private 宣言 } public { Public 宣言 } intDelphi : integer; end; var frmMain: TfrmMain; {フォームが定義済みです} intPascal : integer; |
他のユニットからこの変数を参照する場合は参照する側のuses節に 参照先のユニット名を追加します。
■ uses節に参照先ユニット名を追加した例 |
var Form1: TForm1; implementation {$R *.DFM} uses Unit2; {追加するのはフォーム名ではなくユニット名(ファイル名)です} procedure TForm1.Button1Click(Sender: TObject); const |
Interface部に宣言した変数 intPascalは普通の変数と同じように使用できます。 しかしPublicに宣言した変数の方は少し違います。フォームのメンバとして扱うのでフォームを意識します。
■ 他のフォームのメンバにアクセスする例 |
procedure TForm1.Button2Click(Sender: TObject); var intData : integer; begin intData := (Form2.intMoney * 2); Table1.FieldByName('Money').AsInteger := intData; |
ここらへんに関しては Kobayashi氏が運営する GreenSpace HomePage のでべろっぱのすすめにて詳しく書かれています。是非参考にしてください。
関連項目
Const 定数定義
Global 変数定義