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

Вниз

Error   Найти похожие ветки 

 
SDV   (2004-11-30 00:05) [0]

Подскажите, пожалуйста,
из-за чего и как это исправить
происходит ошибка "Declaration of "AfterPaint" differs from previous declaration"
при попытке установить SynSpellCheck.pas?

В справке Delphi пишут:

This error message occurs when the declaration of a procedure, function, method, constructor or destructor differs from its previous (forward) declaration.

This error message also occurs when you try to override a virtual method, but the overriding method has a different parameter list, calling convention etc.

program Produce;

type
 MyClass = class
   procedure Proc(Inx: Integer);
   function Func: Integer;
   procedure Load(const Name: string);
   procedure Perform(Flag: Boolean);
   constructor Create;
   destructor Destroy(Msg: string); override;      (*<-- Error message here*)
   class function NewInstance: MyClass; override;  (*<-- Error message here*)
 end;

procedure MyClass.Proc(Index: Integer);             (*<-- Error message here*)
begin
end;

function MyClass.Func: Longint;                     (*<-- Error message here*)
begin
end;

procedure MyClass.Load(Name: string);               (*<-- Error message here*)
begin
end;

procedure MyClass.Perform(Flag: Boolean); cdecl;    (*<-- Error message here*)
begin
end;

procedure MyClass.Create;                           (*<-- Error message here*)
begin
end;

function MyClass.NewInstance: MyClass;              (*<-- Error message here*)
begin
end;

begin
end.

As you can see, there are a number of reasons for this error message to be issued.

program Solve;

type
 MyClass = class
   procedure Proc(Inx: Integer);
   function Func: Integer;
   procedure Load(const Name: string);
   procedure Perform(Flag: Boolean);
   constructor Create;
   destructor Destroy; override;                   (*No parameters*)
   class function NewInstance: TObject; override;  (*Result type   *)
 end;

procedure MyClass.Proc(Inx: Integer);               (*Parameter name  *)
begin
end;

function MyClass.Func: Integer;                     (*Result type  *)
begin
end;

procedure MyClass.Load(const Name: string);         (*Parameter kind  *)
begin
end;

procedure MyClass.Perform(Flag: Boolean);           (*Calling convention*)
begin
end;

constructor MyClass.Create;                         (*constructor*)
begin
end;

class function MyClass.NewInstance: TObject;        (*class function*)
begin
end;

begin
end.

You need to carefully compare the "previous declaration" with the one that causes the error to determine what is different between the two.

Что это значит и как это исправить?


 
GuAV ©   (2004-11-30 00:07) [1]

Ты не тот код привёл.


 
ЮЮ ©   (2004-11-30 04:02) [2]

Что пишут в справке, не стоит публмковать в форуме.

У тебя проблемы перевода?
AfterPaint по-разному обявлен в interface и implementaition секциях модуля (или вообще отсутствует в implementaition)


 
Defunct ©   (2004-11-30 07:39) [3]

> Что это значит и как это исправить?

это значит, что процедуры и функции объявленные в классе, должны быть точно также объявлены и в реализации.

проверь если ты объявил в классе метод как procedure, чтобы и в реаизации у тебя было тоже procedure (а не function).


 
Amoeba ©   (2004-11-30 11:53) [4]

Позволю себе настоятельно рекомендовать автору вопроса словать общепринятым стандартам и имена классов начитать с буквы "T":  т.е. не
MyClass = class
а
TMyClass = class

Это не только улучшает читаемость кода, но и позволяет избежать неприятных ляпов при кодировании.



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

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

Наверх




Память: 0.48 MB
Время: 0.033 c
14-1100984088
DeMoN-777
2004-11-20 23:54
2004.12.12
У кого дома более 1-ого работающего ПК


14-1100879366
Ilya___
2004-11-19 18:49
2004.12.12
У меня есть строковое значение 3294567000 Мне нужно его перевест


1-1101732165
Bobby Digital
2004-11-29 15:42
2004.12.12
Restart


14-1101106133
Ozone
2004-11-22 09:48
2004.12.12
Простой растровый редактор


3-1100280907
SergP
2004-11-12 20:35
2004.12.12
Как работать с ADO в режиме ltBatchOptimistic?