Пытаюсь из готовой компоненты сделать ActiveX компонент. Но при создании ActiveX control создается файл с вызовом из класса-предка. Но тип он проставляет IStrings, а в родительском классе используется TStrings. И компилятор эти типы считает разными. Видимо, нужна какая-то функция для преобразования этих типов. Для наглядности приведу декларирование обоих типов: модуль StdVCL | Код | IStrings = interface(IDispatch) ['{EE05DFE2-5549-11D0-9EA9-0020AF3D82DA}'] function Get_ControlDefault(Index: Integer): OleVariant; safecall; procedure Set_ControlDefault(Index: Integer; Value: OleVariant); safecall; function Count: Integer; safecall; function Get_Item(Index: Integer): OleVariant; safecall; procedure Set_Item(Index: Integer; Value: OleVariant); safecall; procedure Remove(Index: Integer); safecall; procedure Clear; safecall; function Add(Item: OleVariant): Integer; safecall; function _NewEnum: IUnknown; safecall; property ControlDefault[Index: Integer]: OleVariant read Get_ControlDefault write Set_ControlDefault; default; property Item[Index: Integer]: OleVariant read Get_Item write Set_Item; end;
|
модуль Classes | Код | TStrings = class(TPersistent) private FDefined: TStringsDefined; FDelimiter: Char; FQuoteChar: Char; FUpdateCount: Integer; FAdapter: IStringsAdapter; function GetCommaText: string; function GetDelimitedText: string; function GetName(Index: Integer): string; function GetValue(const Name: string): string; procedure ReadData(Reader: TReader); procedure SetCommaText(const Value: string); procedure SetDelimitedText(const Value: string); procedure SetStringsAdapter(const Value: IStringsAdapter); procedure SetValue(const Name, Value: string); procedure WriteData(Writer: TWriter); function GetDelimiter: Char; procedure SetDelimiter(const Value: Char); function GetQuoteChar: Char; procedure SetQuoteChar(const Value: Char); protected procedure DefineProperties(Filer: TFiler); override; procedure Error(const Msg: string; Data: Integer); overload; procedure Error(Msg: PResStringRec; Data: Integer); overload; function ExtractName(const S: string): string; function Get(Index: Integer): string; virtual; abstract; function GetCapacity: Integer; virtual; function GetCount: Integer; virtual; abstract; function GetObject(Index: Integer): TObject; virtual; function GetTextStr: string; virtual; procedure Put(Index: Integer; const S: string); virtual; procedure PutObject(Index: Integer; AObject: TObject); virtual; procedure SetCapacity(NewCapacity: Integer); virtual; procedure SetTextStr(const Value: string); virtual; procedure SetUpdateState(Updating: Boolean); virtual; property UpdateCount: Integer read FUpdateCount; function CompareStrings(const S1, S2: string): Integer; virtual; public destructor Destroy; override; function Add(const S: string): Integer; virtual; function AddObject(const S: string; AObject: TObject): Integer; virtual; procedure Append(const S: string); procedure AddStrings(Strings: TStrings); virtual; procedure Assign(Source: TPersistent); override; procedure BeginUpdate; procedure Clear; virtual; abstract; procedure Delete(Index: Integer); virtual; abstract; procedure EndUpdate; function Equals(Strings: TStrings): Boolean; procedure Exchange(Index1, Index2: Integer); virtual; function GetText: PChar; virtual; function IndexOf(const S: string): Integer; virtual; function IndexOfName(const Name: string): Integer; virtual; function IndexOfObject(AObject: TObject): Integer; virtual; procedure Insert(Index: Integer; const S: string); virtual; abstract; procedure InsertObject(Index: Integer; const S: string; AObject: TObject); virtual; procedure LoadFromFile(const FileName: string); virtual; procedure LoadFromStream(Stream: TStream); virtual; procedure Move(CurIndex, NewIndex: Integer); virtual; procedure SaveToFile(const FileName: string); virtual; procedure SaveToStream(Stream: TStream); virtual; procedure SetText(Text: PChar); virtual; property Capacity: Integer read GetCapacity write SetCapacity; property CommaText: string read GetCommaText write SetCommaText; property Count: Integer read GetCount; property Delimiter: Char read GetDelimiter write SetDelimiter; property DelimitedText: string read GetDelimitedText write SetDelimitedText; property Names[Index: Integer]: string read GetName; property Objects[Index: Integer]: TObject read GetObject write PutObject; property QuoteChar: Char read GetQuoteChar write SetQuoteChar; property Values[const Name: string]: string read GetValue write SetValue; property Strings[Index: Integer]: string read Get write Put; default; property Text: string read GetTextStr write SetTextStr; property StringsAdapter: IStringsAdapter read FAdapter write SetStringsAdapter; end;
|
--------------------
библия учит любить ближнего, а камасутра обучает как именно
|