Форум: "Начинающим";
Текущий архив: 2011.10.16;
Скачать: [xml.tar.bz2];
Внизкак правильно вставить декларацию процедуры? Найти похожие ветки
← →
vegarulez (2011-06-24 21:32) [0]Привет всем мастерам.
Подскажите как правильно вставить кусок кода вот отсюда:
http://ruminatedrumblings.blogspot.com/2008/07/indy-and-https-post.html
для логирования idHttp
Я вставляю - компилятор ругается:[Error] Main.pas(161): Declaration of "LogReceivedData" differs from previous declaration
[Error] Main.pas(162): Declaration of "LogSentData" differs from previous declaration
[Error] Main.pas(163): Declaration of "LogStatus" differs from previous declaration
[Error] Main.pas(165): Declaration of "LogWriteString" differs from previous declaration
[Error] Main.pas(171): Identifier redeclared: "TlogFile.buildLogLine"
вставляю вот так:Uses
...
type
TForm1 = class(TForm)
IdAntiFreeze1: TIdAntiFreeze;
Panel1: TPanel;
memoHTML: TMemo;
HTTP: TIdHTTP;
...........
procedure Button5Click(Sender: TObject);
private
bPostFile: Boolean;
ss:string;
public
end;
const
CR = #13;
LF = #10;
EOL = CR+LF;
xmlEOL = EOL;
type
// this is a descendant of TidLogFile, it will create a plain text file with
// information about the transfer session
TlogFile = class(TidLogFile)
protected
procedure LogReceivedData(const AText, AData: string); override;
procedure LogSentData(const AText, AData: string); override;
procedure LogStatus(const AText: string); override;
public
procedure LogWriteString(const AText: string); override;
class function buildLogLine(data, prefix: string) : string;
end;
// this ensures the output of error and debug logs are in the same format, regardless of source
class function TlogFile.buildLogLine(data, prefix: string) : string;
begin
data := StringReplace(data, EOL, RSLogEOL, [rfReplaceAll]);
data := StringReplace(data, CR, RSLogCR, [rfReplaceAll]);
data := StringReplace(data, LF, RSLogLF, [rfReplaceAll]);
result := FormatDateTime("yy/mm/dd hh:nn:ss", now) + " ";
if (prefix <> "") then
result := result + prefix + " ";
result := result + data + EOL;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
Подскажите что делаю не так?
Вроде нигде выше декларации процедур с таким именем не встречаются.
Вообщем нид хелп.
← →
vegarulez (2011-06-24 21:33) [1]а ну и ругается на этот код:
protected
procedure LogReceivedData(const AText, AData: string); override;
procedure LogSentData(const AText, AData: string); override;
procedure LogStatus(const AText: string); override;
public
procedure LogWriteString(const AText: string); override;
class function buildLogLine(data, prefix: string) : string;
← →
Loginov Dmitry © (2011-06-24 23:36) [2]Часть реализации должна находиться ниже implementation.
← →
vegarulez (2011-06-24 23:40) [3]Так это же объявление процедур и класса. Компилятор же на них ругается. Почему они должны находится после implementation?
← →
Плохиш © (2011-06-25 00:54) [4]
> vegarulez (24.06.11 23:40) [3]
> Почему они должны находится после implementation?
Потому что так написано в описании синтаксиса используемого языка программирования.
← →
Германн © (2011-06-25 01:00) [5]
> Компилятор же на них ругается.
А на кого ему еще ругаться? На глупого программера, который запихнул в секцию interface помимо объявлений ещё и часть кода реализации?
← →
vegarulez (2011-06-25 08:18) [6]Поставил ниже имплементации - всё равно ошибка таже ( компилятор также ругается.
← →
Плохиш © (2011-06-25 12:36) [7]Перекрывающий метод должен иметь точно такое же описание, что и перекрываемый.
← →
vegarulez (2011-06-25 20:17) [8]Я понял в чём дело.
Дело в том что если я в uses объявляю IdLogFile то компилятор ругается - т.к. там уже есть описание таких методови процедур.
Если же в юзес не объявлять IdLogFile то тогда компилятор ругается на вот эту строкуTlogFile = class(TidLogFile)
говоря что компилятор не знает что такое TidLogFileUndeclared identifier: "TidLogFile"
← →
icWasya © (2011-06-27 12:48) [9]> там уже есть описание таких методови процедур
А как именно там они описаны?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.10.16;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.004 c