モジュール/クラスの追加
Delphi で空のクラス、モジュールを追加するには [ファイル] - [新規作成] で "ユニット"
を選びます。
するとプロジェクトに空のユニットが追加されます。
■ 追加される内容 |
unit Unit2; interface implementation end. |
これに、VBのモジュールのように関数を追加してみましょう。
グレーの部分以外が追加部分です。
■ 関数の追加例 |
unit Unit2; interface uses Windows; function HanToZen(const Source: string) : string; function ZenToHan(const Source: string) : string; function ZenKanaToZenHira(const Source: string) : string; function ZenHiraToZenKana(const Source: string) : string; implementation //---------------------------------------------- // LCMapString API //---------------------------------------------- function MapString(const Source: string; Flag: integer): string; var Chr : array [0..255] of char; begin Windows.LCMapString( GetUserDefaultLCID(), Flag, PChar(Source), Length(Source) + 1, chr, Sizeof(chr) ); Result := chr; end; //---------------------------------------------- // 半角を全角に変換 //---------------------------------------------- function HanToZen(const Source: string) : string; begin Result := MapString(Source, LCMAP_FULLWIDTH); end; //---------------------------------------------- // 全角を半角に変換 //---------------------------------------------- function ZenToHan(const Source: string) : string; begin Result := MapString(Source, LCMAP_HALFWIDTH); end; //---------------------------------------------- // 全角カタカナを全角ひらがなへ //---------------------------------------------- function ZenKanaToZenHira(const Source: string) : string; begin Result := MapString(Source, LCMAP_HIRAGANA); end; //---------------------------------------------- // 全角ひらがなを全角カタカナへ //---------------------------------------------- function ZenHiraToZenKana(const Source: string) : string; begin Result := MapString(Source, LCMAP_KATAKANA); end; end. |
interface 部に宣言した関数は外部のユニットからも使用可能です。
この場合 4 つの関数が外部に公開されています。 interface 部に記述しない関数は外部からは使えません。上記の例では
MapString 関数は外部からは使えません。
次にクラスの記述例です。
■ クラスの記述例 |
unit Unit2; interface uses Windows, Classes, Dialogs; type TTestClass = class(TObject) private public procedure ShowMsg; end; implementation procedure TTestClass.ShowMsg; begin ShowMessage('Hello World'); end; end. |
上記のへなちょこクラスは見て分かると思いますがパブリックスコープに ShowMsgメソッドがあるだけのものです。VBと違い、Delphi ではひとつのファイルにいくつでもクラスを記述できます。Delphiのサンプルコンポーネントもクラスなのでそれを参考にするといろいろと勉強になります。