Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.038 c
3-1100508460
neat
2004-11-15 11:47
2004.12.12
TDBLookupComboBox


6-1096627357
Вован
2004-10-01 14:42
2004.12.12
Имена сетевых компов


1-1101552689
ККК
2004-11-27 13:51
2004.12.12
TStringList


6-1096905757
N.H.
2004-10-04 20:02
2004.12.12
Как можно провер., что стр-ца, откр. брауз-ом - это стр-ца ош-ки?


14-1100881470
Defunct
2004-11-19 19:24
2004.12.12
Как избавиться от порносайтов?!





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