Форум: "Прочее";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];
ВнизКлассовые методы с неклассовыми свойствами Найти похожие ветки
← →
Внук © (2016-01-28 18:41) [0]
type
TClassA = class
protected
public
class function GetCode: string; virtual; abstract;
class function GetName: string;
property MyName: string read GetName;
property MyCode: string read GetCode;
end;
TClassB = class(TClassA)
public
class function GetCode: string; override;
end;
class function TClassA.GetName: string;
begin
Result := Format("%s Class", [GetCode]);
end;
class function TClassB.GetCode: string;
begin
Result := "B";
end;
procedure TForm1.Button1Click(Sender: TObject);
var
B: TClassB;
begin
B := TClassB.Create;
try
ShowMessage(B.MyName);
finally
B.Free;
end;
end;
Обратите внимание на строчку ShowMessage. Пример компилируется. Но не работает.
Меняем на ShowMessage(B.GetName); - работает, само собой.
Меняем на ShowMessage(B.MyCode); - снова работает.
Пробовал на D2006, впрочем на XЕ6 ровно то же самое.
Не знаю, что даже спросить. Почему не работает, или почему компилятор позволяет это компилировать...
← →
Внук © (2016-01-28 18:46) [1]Естественно, что если я напишу class property, то оно даже не скомпилируется.
← →
Cobalt © (2016-02-04 12:58) [2]недосмотрели
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.052 c