Create  Edit  Diff  Phillro Industries  Index  Search  Changes  History  Source  RSS  Note  wikifarm  Login

Delphi_help

ApolloでのDelphiのヘルプの使い方

ApolloのPhiライブラリはDelphiのライブラリをパックしたものなので、機能的にはDelphiと同等のものになります。

Phiライブラリのドキュメントは次の2個の理由で整備されていません。

  • Phiライブラリによって利用可能になるDelphiの機能は膨大な量であり、ドキュメントを整備するための人的資源が無い。
  • Phiライブラリのドキュメントで説明しようとしても、字句の機械的読み替えになってしまうことが多い。つまり、Delphiのドキュメントのコピーになってしまう。

そこで、Phiライブラリの機能を調べるためにはDelphiのドキュメントを参照する必要が出てきます。

ここでは、Delphiのヘルプを利用する方法を述べます。

Delphiのヘルプの所在。デスクトップに登録する。

Delphi 6 Personal がデフォルトでインストールされているという仮定で述べます。

デルファイのヘルプは次のディレクトリに沢山のファイルに別れて入っています。

 C:/Program Files/Borland/Delphi6/Help/

.hlpという拡張子がヘルプの本体です。この内の、delphi6.hlpが全体のヘルプへの入り口なので、これを右クリックして送るデスクトップでデスクトップにコピーしておくと良いでしょう。

 C:\Program Files\Borland\Delphi6\Help>dir *.hlp

  C:\Program Files\Borland\Delphi6\Help のディレクトリ
 2001/07/13  06:00            34,370 del6com.hlp
 2001/07/13  06:00           271,014 DEL6CW.HLP
 2001/07/13  06:00            26,178 del6dap.hlp
 2001/07/13  06:00            50,754 del6dbd.hlp
 2001/07/13  06:00            85,631 DEL6NEW.HLP
 2001/07/13  06:00           502,783 del6op.hlp
 2001/07/13  06:00           825,222 del6prog.hlp
 2001/07/13  06:00        13,546,671 del6vcl.hlp
 2001/07/13  06:00            20,095 DEL6XTRA.HLP
 2001/07/13  06:00         1,986,685 delphi6.hlp
 2001/07/13  06:00           114,498 IMAGEDIT.HLP
 C:\Program Files\Borland\Delphi6\Help>

Delphiの命名規則とApolloの命名規則の違い

クラス名

ApolloではFormのように大文字から始まり、頭にTはつけません。これに対して、DelphiではTFormのように頭にTをつけるようになっています。

つまり、ApolloのFormクラスはDelphiではTFormクラスになります。

メソッド名

メソッド名が英単語の合成であるような場合、Apolloでは全部小文字で、途中に_(アンダースコア)を入れます。これに対して、DelphiではOnActivate?のように大文字、小文字、大文字、小文字となります。

つまり、Apolloのon_activateメソッドは、DelphiではOnActivate?になります。

  • Delphiでは識別子の大文字と小文字の区別をしないので単純にアンダースコア_を取り除けばDelphiのメソッド名になるともいえる。

Delphiの正式なメソッド名からApolloのメソッド名への変換はPhi.downcaseメソッドで行うこともできます。

 require "phi"

 p Phi.downcase("OnActivate")    #=> "on_activate"
 p Phi.upcase("OnActivate")      #=> "ON_ACTIVATE"

Phi.upcaseはDelphiの定数名からApolloの定数名を作成するような場合のためのものです。

  • 逆にApollo流の"on_activate"からDelphi流の"OnActivate?"に戻すメソッドは無いようです。
    • Apolloには実装してますがPhi上に公開していません。 -- moriq

クラスの調べ方

ApolloのFormクラスをDelphiのヘルプで調べる場合には、ヘルプを開いた後キーワードページを選択してから探したい語句の・・TFormと入れます。下のリストにTFormから始まる付近のキーワードが現れますので、TFormとだけ書いてある項目を選択すれば次のようなページが出てくるはずです。

  • VCLかCLXで説明が異なる場合には、VCLの説明を参照してください。

説明の中のTButtonはApolloのButtonクラス、TCheckBox?はApolloのCheckBox?クラスというように、Tを取り去って読み替えます。

VCL リファレンス

TForm

継承 プロパティ メソッド イベント TForm の使い方 参照

TForm は,標準アプリケーションウィンドウ(フォーム)を表します。

ユニット

Forms

説明

設計時にフォームデザイナでフォームを作成するときに TForm の子として実装されます。 フォームは,アプリケーションのメインウィンドウ,ダイアログボックス, または MDI 子ウィンドウを表すことができます。 フォームには,TButton,TCheckBox,TComboBox オブジェクトなど, 他のオブジェクトを入れることができます。 フォームの例としては,TLoginDialog や TPasswordDialog? オブジェクトなどがあります。

注意 フォームオブジェクトを操作するときは, それを解放するのに Free メソッドまたは Destroy メソッドを明示的に呼び出さないでください。 かわりに,Release メソッドを使います。 これは,すべてのイベントハンドラが実行を終えるのを待ちます。

  • Apolloでは設計時にフォームデザイナでフォームを作成するということは(今のところ)出来ないので、説明の最初の行は無視してください。
  • また、Apollo(Ruby)ではオブジェクトの廃棄は自動的に行われるので、注意 フォームオブジェクトを操作するときは,それを解放する……以下の文章も関係ありません。

プロパティ・メソッド・イベント

ここで、[プロパティ] [メソッド] [イベント]のいずれかを選べば、ApolloのPhi::Formのメソッドのリストが出てきます。

Delphiのプロパティ・メソッド・イベントはApolloでは本質的な性質はいずれもメソッドになります。しかし、Apolloでも性質上の区別としてプロパティ・メソッド・イベントと区別して呼び習わしています。

プロパティはRubyでいえば属性にあたります。たとえば、DelphiのActiveプロパティはApolloのPhi::Form#active属性 ( Phi::Form#activeメソッドとPhi::Form#active=メソッド ) に対応します。

イベントはApolloでもイベントです。DelphiのOnActivate?はApolloのPhi::Form#on_activatePhi::Form#on_activate=に対応します。

メソッドは、Apolloのその他のメソッドという扱いになります。

メソッドの調べ方

メソッド名が英単語の合成であるような場合、Apolloでは全部小文字で、途中に_(アンダースコア)を入れますが、DelphiではOnActivate?のように大文字・小文字・大文字・小文字のようになります。

従って、ApolloのForm#on_activateイベントを調べたい場合には、Delphiのヘルプの[イベント]のリストからOnActivate?を選択すれば、その説明が出てきます。

Apolloの Form#active の説明は[プロパティ]をクリックして[TFormプロパティ]のリストから[Active]を選択します。

VCL リファレンス

TCustomForm?.Active

TCustomForm? 参照

Active プロパティは,フォームにフォーカスがあるかどうかを示します。

property Active: Boolean;

説明

Active プロパティを使うと,フォームにフォーカスがあるかどうかを判定できます。 アクティブなフォームはすべてのキーボード入力を受け取ります。 フォームがタイトルバーを持つ場合,  タイトルバーはコントロールパネルで指定したアクティブカラーで描画されます。 Active が True の場合,フォームにフォーカスがあります。 Active が False の場合,フォームにはフォーカスがありません。

DelphiのActiveをApolloのactiveメソッドに読み替えれば、そのままApolloのマニュアルになります。

  • TruetrueFalsefalseも読み替える必要がありますが……
Last modified:2003/10/23 16:53:09
Keyword(s):
References: