Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2017.01.15;
Скачать: CL | DM;

Вниз

Классовые методы с неклассовыми свойствами   Найти похожие ветки 

 
Внук ©   (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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.027 c
2-1422952316
Кирилл
2015-02-03 11:31
2017.01.15
Приложение с картами Яндекс или Гугл


15-1455053404
Юрий
2016-02-10 00:30
2017.01.15
С днем рождения ! 10 февраля 2016 среда


3-1310534275
bestonix
2011-07-13 09:17
2017.01.15
TUniTable


15-1451124375
megavoid
2015-12-26 13:06
2017.01.15
Дамы и господа, не забываем про round :)))


2-1420537491
Enzain
2015-01-06 12:44
2017.01.15
От какого пользователя запущено приложение.