Re: FindClass and runtime control creation error?
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 10.11.03 10:43
Оценка: 1 (1) +1
Здравствуйте, bivis, Вы писали:

B>
B>function CreateControl(AClassName:string; AParent:TWinControl):TWinControl;
B>begin
B>  Result:=FindClass(AClassName).Create as TWinControl;
B>  Result.Parent:=AParent;
B>end;
B>


Ошибка в том, что для потомков TComponent необходимо вызывать конструктор TComponent.Create(AOwner: TComponent); Поэтому, может помочь следующее:

function CreateControl(AClassName:string; AParent:TWinControl):TWinControl;
begin
  Result:=TWinControlClass(FindClass(AClassName)).Create(AParent);
  Result.Parent:=AParent;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Btn: TButton;
begin
  RegisterClass(TButton);
  Btn := CreateControl('TButton', Self) as TButton;
  Btn.Caption := '!!!!!!!!!';
  Btn.Visible := True;
end;
... << RSDN@Home 1.1 beta 2 >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.