お世話になっています。かふぇです。
質問ですが、自作コンポーネント内でTStringGridを作成しています。
OnEnter イベントには
grid.OnEnter := _OnEnter; // パラメータは Sender:TObject
と関数を割り当てられたのですが、
grid.OnDrawCell := _DrawCell;
OnDrawCell イベントに関数を割り当てようとすると
TDrawCellEvent にキャストできないと怒られてしまいました。
_DrawCell 関数は次のように定義しています。
_DrawCell( Sender:TObject; (ACol: Integer; ARow: Integer;
ARect: TRect; AState: TGridDrawState );
何が悪いのでしょうか?ご教授お願いします。
単独の関数や手続きじゃだめだよ、型があわないから。メソッドにしないと。
えーとさん早速の回答ありがとうございました。
関数定義部分をはしょりすぎてしまって誤解させてしまいました。
失礼しました。
上記の_DrawCell は うまく割り当てられた _OnEnter と同じ
クラスメンバーとしていました。
その後、TDrawCellEvent の定義を探して型を再確認してみました。
結果、私の定義中の「ARect: TRect」には編集不可を示す
「const」が足りないことが分かりました。
(C++ Builderでは、Grids.hpp中に定義されています。)
当方 C++ Builder でして、Delphiでは「const」がどう変わるのか分からないのですが、単純に型が合っていなかっただけでした。
お騒がせいたしました。
ツイート | ![]() |