名前 題名 ▼ takiさん > ▼ igyさん > > 試してないですけど、 > > > > Delphiのメソッドをメソッド名から実行する方法 > > http://www.gesource.jp/weblog/?p=642 > > > > とか、いかがですか? > > ありがとうございます。 > > 実はこのページの内容も参考にして色々と試してみました。(過去形) > > procedure ExecMethod(OnObject: TObject; MethodName: string); > をコピペしました。 > > procedure TForm1.Button4Click(Sender: TObject); > begin > ExecMethod(Form1,'MyEvent'); // Beep鳴らない > end; > > それで新たにButton5を配置して、IDEからイベントを関連付けました。 > > procedure TForm1.Button5Click(Sender: TObject); > begin > showmessage('Button5Click'); > end; > > procedure TForm1.Button4Click(Sender: TObject); > begin > // ExecMethod(Form1,'MyEvent'); // Beep鳴らない > ExecMethod(Form1,'Button5Click'); // Showmessage表示された > end; > > procedure TForm1.MyEvent(Sender: TObject); > begin > beep; > end; > > IDEで関連付けたButton5Clickとかだったら動くようですが、 > 動的に生成したイベントの手続き、もしくは標準的なイベントでない?場合は > Form1.MethodAddress()がnilしか返してくれません。 > > それで、method.Code := @TForm1.MyEvent; にたどり着いたのですが…。 > > 逃げるは恥だが仕方がない! GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link