Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.45 MB
Время: 0.058 c
15-1456148886
K-1000
2016-02-22 16:48
2017.01.15
TCanvas. Вывести текст с разноцветными буквами


15-1452881433
xayam
2016-01-15 21:10
2017.01.15
Приглашаю на шахматный турнир Delphi Masters 4 (2016)


15-1453673352
Jeer
2016-01-25 01:09
2017.01.15
С днем Штурмана ВМФ!


2-1432218936
Пауло Сержио
2015-05-21 17:35
2017.01.15
поиск по подчинённой таблице


2-1419335246
Drowsy
2014-12-23 14:47
2017.01.15
TibDataSet в TDBGrid (TDBDridEh).





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский