На старости лет решил тряхнуть таки и вспомнить прелести. Установил себе на старинный бук линух и лазарус. Решил накидать некий интерактивный макетик проги. Руки с трудом вспоминают то что мозги вже забыли. делаю логер. Если есть имя файла - открываю на запись, а если нет - беру stdout
- Код: Выделить всё
constructor TMyLogger.Create(fn: string);
begin
if fn <> '' then
begin
Assign(logfile_,fn);
{i-}
Rewrite(logfile_);
{i+}
if IOResult<>0 then ;// Ошибка IOResult
end
else logfile_ := stdout;
end;
Ну и в деструкторе
- Код: Выделить всё
destructor TMyLogger.Destroy;
begin
if logfile_ <> StdOut
then Close(logfile_)
else Flush(logfile_);
end;
Ругается на деструкто, а именно на
- Код: Выделить всё
if logfile_ <> StdOut
- Код: Выделить всё
Компиляция проекта, цель: project1: Код завершения 1, ошибок: 2, предупреждений: 1
states.pas(21,16) Warning: An inherited method is hidden by "destructor Destroy;"
states.pas(67,6) Error: Incompatible types: got "Text" expected "LongInt"
states.pas(67,18) Error: Incompatible types: got "Text" expected "LongInt"
Я не очень понял почему так нельзя? Обе переменные типа Text...