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

Вниз

как правильно вставить декларацию процедуры?   Найти похожие ветки 

 
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)
говоря что компилятор не знает что такое TidLogFile
Undeclared identifier: "TidLogFile"


 
icWasya ©   (2011-06-27 12:48) [9]

> там уже есть описание таких методови процедур
А как именно там они описаны?



Страницы: 1 вся ветка

Текущий архив: 2011.10.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.008 c
15-1308584554
alexdn
2011-06-20 19:42
2011.10.16
Хост + ms sql


15-1308891816
Дмитрий С
2011-06-24 09:03
2011.10.16
Как назначить клавиши на кнопки Back/Forward в IDE?


15-1308836003
картман
2011-06-23 17:33
2011.10.16
как эта задачка решается Хорошо?


8-1217186194
Алекс
2008-07-27 23:16
2011.10.16
Проблема с отрисовкой Image.


15-1308930395
Оверклокер
2011-06-24 19:46
2011.10.16
А какой у вас куллер стоит?