я создать первый блок с основными определениями классов какРешать блок перекрестная ссылка вопрос
unit_classtype;
type
TMyClass = class(..)
.....
end;
end.
Во втором блоке я храню много вспомогательных функций для первого блока
unit_classtype_helper;
uses unit_classtype;
procedure WriteMyClasstoStringlist (aStringlist : TStringlist; aClass : TMyClass);
implementation
procedure WriteMyClasstoStringlist (aStringlist : TStringlist; aClass : TMyClass);
begin
aStringlist.add ('info on my Class', MyClass.Data);
....
end;
Теперь я хочу для создания функции MycLass.savetoFile и использования кода из WriteMyClasstoStringlist, но я не могу включить helpunit в блок определения класса из-за перекрестной ссылки.
Shifting код не вариант, мне нужно немного другое решение
Написание качественного поддерживаемого кода *** принципиально *** о размещении кода в «правильном» месте - _where its which_. Но вы говорите, что это не вариант? Что «лучше знает» о том, что происходит внутри «TMyClass» и что должно быть записано в список строк в ** best **, представляет экземпляр? Вы можете выбрать любую из следующих функций: «TMyClass», «TMyClass» или «TMyClass». ..... Итак, хотя вы утверждаете, что переключение кода не является опцией, единственным *** правильным *** является добавление 'public procedure WriteToStrings (AStrings: TStrings);' to 'TMyClass'. –