Delphi: TField.OnGetText イベントの DisplayText パラメータについて

Delphi でデータベースを扱う場合、表示系のコンポーネントには TField クラスが項目コンポーネントとして利用されています。

そして、この TField クラスの OnGetText イベントには DisplayText パラメータがあるのですが、その解釈がちょっとわかりづらかったのでメモしておきます。

*

何がわかりづらかったかと言うと、TField クラスには DisplayText というプロパティが存在するんです。

引数ではなく、プロパティ。

一緒だと思うと混乱します。

何せ前者は Boolean 型、後者は string 型を扱うプロパティですから。

*

まず TField は、

  1. 編集中で無い時は DisplayText プロパティの値を表示し、
  2. 編集中の時は Text プロパティの値を表示します。

そして、1. の<編集中で無い場合>の表示について、独自の書式などを適用したい場合に使うのが、OnGetText イベントなんですね。

たとえばこんな感じで、通常なら数値が直接表示される項目の表示を変えることができるわけです。
[code lang=’delphi’] procedure TMyQuery.XXXGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
if Sender.AsInteger = 0 then begin
Text := ‘nothing’
end else begin
Text := ‘not zero’;
end;
end;
[/code]

表示したい値を Text パラメータに代入します。

ただし、DisplayText パラメータが True の時 Text パラメータに代入した値が有効になります(と言っても DisplayText パラメータは、デフォルト値 True ですが)。

DisplayText パラメータが False の場合(自分で値を代入した場合)、AsString の値が採用されます。

ちなみに、DisplayText を True にセットするのみのコードを記述すると、「’DisplayText’ に代入された値は使われていません」DCC 警告が出ます。

10年集客し続けられるサイトを、ワードプレスで自作する9つのポイント プレゼント

【最後まで読んでくれたあなたに】

あなたは、24時間365日、自分の代わりに集客し続けてくれるWebサイトを作りたい!と思ったことはありませんか?

私はこれまで500以上のWebサイトの構築と運営のご相談に乗ってきましたが、Webサイトを作ってもうまく集客できない人には、ある一つの特徴があります。

それは、「先を見越してサイトを構築していないこと」です。
Webサイトで集客するためには、構築ではなく「どう運用するか」が重要です。

しかし、重要なポイントを知らずにサイトを自分で構築したり、業者に頼んで作ってもらってしまうと、あとから全く集客に向いていないサイトになっていたということがよく起こります。

そこで今回、期間限定で
『10年集客し続けられるサイトをワードプレスで自作する9つのポイント』
について、過去に相談に乗ってきた具体的な失敗事例と成功事例を元にしてお伝えします。

・ワードプレスを使いこなせるコツを知りたい!
・自分にピッタリのサーバーを撰びたい!
・無料ブログとの違いを知りたい!
・あとで悔しくならない初期設定をしておきたい!
・プラグイン選びの方法を知っておきたい!
・SEO対策をワードプレスで行うポイントを知りたい!
・自分でデザインできる方法を知りたい!

という方は今すぐ無料でダウンロードしてください。

期間限定で、無料公開しています。

※登録後に表示される利用条件に沿ってご利用ください

コメントを残す