Главная страница
    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.042 c
3-1100210631
Dik
2004-11-12 01:03
2004.12.12
Связанные таблицы


14-1100806076
Игорь Шевченко
2004-11-18 22:27
2004.12.12
Перечитывая Таненбаума (задачка)


3-1100453708
Недалекий
2004-11-14 20:35
2004.12.12
Delphi - IBX - Insert


6-1096761153
N.H.
2004-10-03 03:52
2004.12.12
Можно с помощью TWebBrowser сохранить текущую страницу в MHT?


1-1101640437
ja
2004-11-28 14:13
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский