![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Operator not applicable to this operand type [D6, WinXP]
XP © (2005-03-01 12:24:00)Надоело об стену стучаться головой. Подскажите, пожалуйста.
unit urInterfaces;
interface
type
IrIniFile = interface
function GetData: string; stdcall;
end;
...
//-----------------------------------------
unit urIniFile;
interfaces
uses
urInterfaces;
type
TrIniFile = class(TObject, IrIniFile)
protected
function GetData: string; stdcall;
end;
implementation
uses
urCore;
...
//-----------------------------------
unit urCore;
interface
uses
urInterfaces, urIniFile;
type
TrCore = class
private
m_IniFile: IrIniFile;
public
constructor Create;
end;
implementation
constructor TrCore.Create;
begin
m_IniFile := TrIniFile.Create as IrIniFile; // остановка компилятора
end;
На месте остановки пишет: Operator not applicable to this operand type
Вместе с тем, TrIniFile явно объявлен как class(TObject, IrIniFile).
Кроме того, IDE упорно отказывается "ходить" по исходникам по Ctrl + LeftClick.
Все файлы лежат в одной папке. Больше нигде исходников нет - только в этой папке. То-есть, использование разных DCU исключено - специально перепроверил.
Что он хочет-то?... Где это я так сильно споткнулся?...
Чапаев (2005-03-01 12:42:00) [41]m_IniFile := TrIniFile.Create; -- а так?
Димон (2005-03-01 12:40:00) [42]или самому реализовать нужные методы
clickmaker (2005-03-01 12:38:00) [43]угу, должно быть TInterfacedObject
Димон (2005-03-01 12:33:00) [44]
> Спасибо, Димон, за подсказку, но он там стоит.
слабо верится. Должно работать, если он стоит :)
Ты где его ставишь? Надо же внутри описания интерфейса. А ты где?
И вообще, почему потомок TObject? У тя работать не дожно, т.к. ты не реализовал _AddRef и прочие методы?
XP (2005-03-01 12:30:00) [45]Спасибо, Димон, за подсказку, но он там стоит.
Я в примере не привел, чтобы не засорять текст.
Димон (2005-03-01 12:26:00) [46]гуид проставь
ctrls+shilf+g ^)))