![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как перекрыть конструктор Create [D6, XP]
pound © (2007-03-01 18:25:00)Подскажите, как перекрыть конструктор Create.
type
TMyType = class(TComponent)
public
constructor Create; override;
end;
implementation
{ TMyType }
constructor TMyType.Create;
begin
inherited Create; или inherited Create(Owner);
...
end;
Компилятор: [Error] Unit1.pas(14): Declaration of 'Create' differs from previous declaration.
И ещё я хотел бы ввести в конструктор Create параметр типа:
type
TMyType = class(TComponent)
public
constructor Create(s: string); override;
Procedure MyOpen(s: string);
end;
implementation
{ TMyType }
constructor TMyType.Create(s: string);
begin
inherited Create;
MyOpen(s);
...
end;
Аноним (2007-03-01 21:34:00) [1]
> Kolan ©
Ну про TObject никто и не спорит )
Kolan (2007-03-01 21:29:00) [2]Да с "компонентом" плохо выходит, неучёл.
А вот с прямым наследником TObject.
constructor Create(); oveload; - тут s по умолчанию.
constructor Create(s: string); overload; a тут заданое.
Аноним (2007-03-01 21:23:00) [3]
> Kolan ©
> может сделать overload; консруктор ?
Не верю, что такое может понадобиться в реальной жизни применителько к компоненту.
Приведите пример
Kolan (2007-03-01 21:13:00) [4]> constructor Create(s: string); override;
может сделать overload; консруктор ?
Аноним (2007-03-01 21:00:00) [5]TMyType = class(TComponent)
public
constructor Create( AOwner: TComponent); override;
end;
ps
не надо изменять прототип конструктора компонета
ИБо, брошенный на форму в дезайн тайме, в ран тайме этот другой конструктор никто не вызовет
ИЛи используй стандартный конструктор, а всякие таам s: string организовывй в виде свойств
или меняй предка
Ega23 (2007-03-01 18:26:00) [6]override убери