Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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)
говоря что компилятор не знает что такое TidLogFile
Undeclared identifier: "TidLogFile"


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

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



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

Форум: "Начинающим";
Текущий архив: 2011.10.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.004 c
4-1217632047
sssyura
2008-08-02 03:07
2011.10.16
SHGetSpecialFolderPath


2-1309147071
Gu
2011-06-27 07:57
2011.10.16
Проверить GUID


2-1309442338
Pcrepair
2011-06-30 17:58
2011.10.16
Программа "ест" память, потом сбой


15-1308649338
stas
2011-06-21 13:42
2011.10.16
TwebBrowser и потоки


6-1243319342
kunka
2009-05-26 10:29
2011.10.16
vpn





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский