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

Delphi, TIPS, プログラム, 開発 No Comments »

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

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

*

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

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

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

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

*

まず TField は、

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

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

たとえばこんな感じで、通常なら数値が直接表示される項目の表示を変えることができるわけです。

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;

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

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

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

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

  • Share/Bookmark

Delphi x2269: オーバーライドされた仮想メソッド ‘%s.%s’ の可視性が %s となり基本クラス ‘%s’ での可視性 (%s) より低くなりました

Delphi, TIPS, プログラム, 開発 No Comments »

「x2269: オーバーライドされた仮想メソッド ‘%s.%s’ の可視性が %s となり基本クラス ‘%s’ での可視性 (%s) より低くなりました」

現在、あるプロジェクト(他の会社製)の修正を行っているのですが、上記警告がかなり出ます。

この警告は、オーバーライドしたメソッドについて、基本クラスよりも派生クラスの可視性が低い場合に表示されるやつですね。

つまり、
基本クラスのメソッドが protected,public,published で宣言されているのに、
派生クラスのメソッドがで private,protected で宣言された場合です。

Delphi では、可視性の範囲が次の通りだからですね。

private < protected < public, published, automated

ヘルプには解決方法として3つありましたが、基本クラスに合わせるのが一番まっとうな解決策だと思います。

というか、無視するって言う解決方法って解決なのか?(笑

  • Share/Bookmark

田町 「トロバカ」の「生まぐろ丼トロ盛り」と「まぐろのつみれ汁」

雑記 No Comments »

大根、にんじん
トロ旨い
薄切り

  • Share/Bookmark

田町 「らぁめん丸」の「油そば」

雑記 No Comments »

ランチは「らぁめん丸」の「油そば」です。

  • Share/Bookmark

ハコネコ

雑記 No Comments »

我が家のみかんちゃん。
サクランボを乗っ取った様子です。

  • Share/Bookmark

荻窪 「さぼり」の「牛すじカレー」

雑記 No Comments »

よく煮込まれている、牛すじ、だいこん、こんにゃく

  • Share/Bookmark

荻窪 「野方ホープ」の「特製つけ麺」

雑記 No Comments »

ツルツルしこしこ麺
辛味ネギ
チャーシュー固め
トロトロ角煮

  • Share/Bookmark

荻窪 「ワイン*サカナ ナトワ」でランチ

雑記 No Comments »

イサキのカルパッチョ&フルーツトマトのマリネ
ムール貝、ツナ、キャベツのペペロンチーノスパゲッティー
コーヒーゼリーと赤シソのシフォンケーキ
酸っぱいわけじゃない。香りが良い

  • Share/Bookmark

吉祥寺 麺屋 勘九郎 勘九郎醤油 ランチ野菜増し

雑記 No Comments »

ちょーもちもち太麺
モヤシ山盛り
刻みニンニク
ちょートロトロチャーシュー刻みネギ
ひとくち餃子

  • Share/Bookmark

Gmail の検索オプション

TIPS, 環境設定 No Comments »

詳細はヘルプセンターに載っていました。

すぐ忘れちゃうのでメモ。

よく使うのが次の演算子。

特定の期間に送信したメールを検索

after: で指定日付以降
before: で指定日付より前まで

日付の書式は「yyyy/mm/dd」

メールヘッダーに指定したキーワードが含まれるメールを検索

list:キーワード

To: や Cc: などの縛りではなく、メールヘッダーを検索します。

これらの演算子はフィルタ機能でも使えますし、Lab の「マルチ受信トレイ」と組み合わせると、ものすごく便利です。

  • Share/Bookmark
WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン