掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
コンポーネントのイベント実装 (ID:44910)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
質問が煩雑かつわかりにくくて申し訳ありません やりたいこととわからないことははこういうことです 「既存のコンポーネントを改良したコンポーネントを作りたい。」 「イベントハンドラは私の場合どういうアプリケーションを作るときでも たいてい決まっているのでアプリケーション本体には書かず、処理を コンポーネントのユニットに書くようにしたい。そうすればどのような アプリケーションを作るときでもusesするだけで済むので自分としては RADだと考えた。」 「しかしその際にイベントを実装するやり方でつまずいた。」というわけ です。改良コンポーネントMyEditを作ってみました。コードを見てください。 unit MyEdit; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TREdit =class(TEdit) protected procedure DoEnter; override; ...(1) procedure KeyPress(var Key: Char); override; ...(2) procedure rClick(Sender: TObject);...(3) published property OnEnter; ...(1) property OnKeyPress; ...(2) property OnClick; ...(3) public constructor CreateEX(Origin :TEdit); end; implementation constructor TREdit.CreateEX(Origin :TEdit); begin OnClick := rClick; ...(3) end; procedure TREdit.DoEnter; ...(1) begin inherited DoEnter; showmessage('Enter!'); end; procedure TRedit.KeyPress(var Key: Char); ...(2) begin inherited KeyPress(Key); showmessage(key); end; procedure TREdit.rClick; ...(3) begin showmessage('Click!'); end; end. (1)(2)(3)と実装してみました(1)(2)は機能しますが(3)はエラーにはなり ませんが実行しても機能しません(3)は直感的にはわかりやすいのですが だめなのでしょうか。 また(2)はKeyPressがOnKeyPressを発生させているのではないのでしょうか。といった風に実装に関してわからないことが山積しております。 わっとっと
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.