掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
関数の名前だけを引数に渡して、関数を実行したい (ID:33872)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
名前(文字列)にこだわる必要がなければ、 手続き型(いわゆる関数ポインタ)を使う方法もありますけど。 たとえば、実行したい関数が次の2つだとします。 function AAA(n: Integer); function BBB(n: Integer); この場合、次のように手続き型の変数を用意して、値を設定します。 type PMyFunction = function(n: Integer); // 手続き型を定義 var hoge: PMyFunction; // その型の変数を用意 ... if 条件 then hoge := AAA else hoge := BBB; // 呼び出したい関数へのポインタを変数に入れておく ... Example(hoge); // 実行したい関数を渡す で、実行する関数の方はこんな感じ。 procedure THoge1.Example(f: PMyFunction); begin f(1); // 引数を指定して関数を呼び出す end; 引数をとらない場合とか、クラスのメンバだったらどうするのか といったあたりはヘルプの「手続き型」を参照してください。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.