delphi는 문자열을 통해 함수 이름을 가져옵니다. (판단 조건이 너무 많은 방법 대신)

2815 단어 delphi
만약에 우리의 어떤 방법 중 몇 십 개의 판단이 있다면 판단의 조건은 문자열 비교이다. 어떻게 판단을 줄이고 문자열과 같은 방법으로 직접 포지셔닝하여 집행합니까?
아래의 방법은 마땅히 실행할 수 있어야 한다
 
MethodAddress: 방법의 주소를 얻습니다. 이 방법은published가 필요합니다.
인스턴스 코드:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 unit Unit1;     interface     uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, StdCtrls;     type       TShowInfo = procedure (info: string ) of object // procedure , ShowInfo       TForm1 = class (TForm)    Button1: TButton;    procedure Button1Click(Sender: TObject);   private    { Private declarations }   public    { Public declarations }       published    procedure ShowInfo(info: string );   end ;     var   Form1: TForm1;     implementation     {$R *.dfm}     { TForm1 }     procedure TForm1 . ShowInfo(info: string ); begin   ShowMessage(info); end ;     procedure TForm1 . Button1Click(Sender: TObject); var   s:TShowInfo; begin   @s := MethodAddress( 'ShowInfo' );    // ShowInfo   if @s <> nil then            //   begin    s( ' ' );         //   end ; end ;     end .

좋은 웹페이지 즐겨찾기