掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
引数TObjectからNameを取得するには (ID:6895)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
例えばEditAとEditBがあるとします。 この2つのKeyPressイベントに同じ関数を指定した場合 procedure TMainForm.OnKeyPress(Sender: TObject; var Key: Char); var Item:TEdit; begin Item := TEdit(Sender); //・・・・※ここ if (ItemE.Name = 'EditA') then begin ; end else if (ItemE.Name = 'EditB') then begin ; end; end; 等とすると、「今どっち?」というのがわかりますよね。 これと同じようにEdit、Label、Memo、ComboBoxにも同じ 関数を用意し「今どれ?」というのを判定したいんです。 しかし、※の部分をどうしてよいのかわかりません。 上記の例ではEditA、EditBと、同じコンポーネントだから納得できるんですけど、 コンポーネントが違う場合は何でキャストすればよいのでしょうか? 一応、試してみて、Label、Memoなどにも上記の関数を指定してやって、 EditでキャストしてもNameプロパティを参照する上で問題ないように見えましたが LabelやMemoをEditでキャストするのはどうなんだろう??という疑問が残ってしまいます。特に問題ないのでしょうか? EditA、EditBはEditコンポーネント Memoはメモコンポーネントだとして・・・ procedure TMainForm.OnKeyPress(Sender: TObject; var Key: Char); var Item:TEdit; begin Item := TEdit(Sender); //Editでキャストしてるのに・・・ if (ItemE.Name = 'EditA') then begin ; end else if (ItemE.Name = 'EditB') then begin ; end //メモってどうなのかと・・・ else if (ItemE.Name = 'Memo') then begin ; end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.