掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
コントロールの動的生成について (ID:49561)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
S := 'TBUTTON'; with S.Create(Self) do いちおうできるんだけど・・・・・・・ TStringHelper = record helper for String private function Create(AOwner: TComponent): TControl; end; function TStringHelper.Create(AOwner: TComponent): TControl; var CRef : TPersistentClass; begin CRef := GetClass(Self); if CRef<>nil then begin Result := TControl(TControlClass(CRef).Create(AOwner)); end; end; procedure TForm1.Button1Click(Sender: TObject); var S: String; begin RegisterClasses([TButton]); begin Parent := Form4; Width := 150; Height := 30; Left := 100; Top := 100; Caption := 'BUTTON'; //TControl にCaption が無い為 Formに設定される end; end; function Create(AOwner: TComponent): TControl; なので with S.Create(Self) do 以下で設定できるので TControl のプロパティのみ TWinControlにすれば TWinControl (ちょっとふえるかも) with TButton(S.Create(Self)) do のように TButtonで囲むか function Create(AOwner: TComponent): TButton; にすれば TButton のプロパティも設定できるが、汎用性はなくなる Sの内容によって 返り値の型を変えるって事ができないから
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.