Проблема при объявлении конструктора класса
В приложении есть форма, у которой переопределен конструктор
В Delphi делаю следующим образом
При вызове fsScript1.Compile возникает ошибка
несовместимые типы: 'Class TfmAnyEditForm', 'Class '
Эту ошибку никак не удается победить. Форум весь прочитал и обратил внимание, что у многих возникает подобного рода ошибка. Но рецепта, как ее победить - нет нигде.
Надеюсь на ваш ответ.
TfmAnyEditForm = class(TForm)
...
constructor Create(AOwner:TComponent; cds:TClientDataSet);reintroduce;overload;
end;
В Delphi делаю следующим образом
function CallMethodAnyEdit(Instance: TObject; ClassType: TClass; const MethodName: String;
Caller: TfsMethodHelper): Variant;
begin
if MethodName = AnsiUpperCase('Create') then
TfmAnyEditForm(Instance).Create(TComponent(Integer(Caller.Params[0])), TClientDataSet(Integer(Caller.Params[1])));
end;
...
fsScript1.Parent := fsGlobalUnit;
fsScript1.SyntaxType := 'PascalScript';
fsScript1.Clear;
fsScript1.Lines.Clear;
fsScript1.Lines := fsSyntaxMemo1.Lines;
...
with fsScript1.AddClass(TfmAnyEditForm, 'TForm') do begin
AddMethod('constructor Create(AOwner:TComponent; cds:TClientDataSet)', CallMethodAnyEdit);
end;
...
При вызове fsScript1.Compile возникает ошибка
несовместимые типы: 'Class TfmAnyEditForm', 'Class '
Эту ошибку никак не удается победить. Форум весь прочитал и обратил внимание, что у многих возникает подобного рода ошибка. Но рецепта, как ее победить - нет нигде.
Надеюсь на ваш ответ.
Комментарии
Instance - не создан, а вы к нему уже обращаетесь. Instance := TfmAnyEditForm.Create(...)
да и вообще переопределение конструктора с reintroduce - плохой тон. Лучше делайте присвоение Cds после.