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

Вниз

Интерфейсы   Найти похожие ветки 

 
rena ©   (2008-06-07 23:48) [0]

Здравствуйте! У меня прога выдает такую ошибку:
[Pascal Error] Unit8.pas(70): E2003 Undeclared identifier: "otobZvezdi"
[Pascal Error] Unit8.pas(70): E2003 Undeclared identifier: "otobLinii"
[Pascal Error] Unit8.pas(70): E2003 Undeclared identifier: "SimpleSort"
[Pascal Error] Unit8.pas(70): E2003 Undeclared identifier: "SliyanieSort"
[Pascal Error] Unit8.pas(70): E2003 Undeclared identifier: "zapRaspr"
[Pascal Error] Unit8.pas(70): E2003 Undeclared identifier: "zapRandom"

Сам код:
I_Int1=interface(IUnknown)
["{5EECAA37-C3AA-4C1A-B073-F231EB6653BE}"]
//Реализует способы заполнения
   procedure zapAddit;
   procedure zapRaspr;
   procedure zapRandom;
 end;

I_Int2=interface(IUnknown)
["{D943F47C-3E94-4509-9740-72A2E2EF0F67}"]
//Реализует способы сортировки
   procedure Qsort(var a: array of Sortmas; iLo, iHi: Integer);
   procedure QuicklySort;
   procedure SimpleSort;
   procedure SliyanieSort;
 end;

I_Int3=interface(IUnknown)
["{43C926DD-1670-498A-BFF2-16A0A3A4FC9F}"]
//Реализует способы отображения
   procedure otobMozaika;
   procedure otobZvezdi;
   procedure otobLinii;
 end;

TClass1=class(TInterfacedObject,I_Int1,I_Int2,I_Int3)
    a:array of Sortmas;
 //Сортировка выбором
   constructor Create;
   procedure ZapAddit;
   procedure QSort(var a: array of Sortmas; iLo, iHi: Integer);
   procedure QuicklySort;
   procedure otobMozaika;
 end;

TClass3=class(TInterfacedObject,I_Int1,I_Int2,I_Int3)
   a:array of Sortmas;
 //Быстрая сортировка
   constructor Create;
   procedure zapRaspr;
   procedure SimpleSort;
   procedure otobZvezdi;
 end;

TClass2=class(TInterfacedObject,I_Int1,I_Int2,I_Int3)
   a:array of Sortmas;
 //Сортировка слиянием
   constructor Create;
   procedure zapRandom;
   procedure Sort(x:array of sortmas;first,last:integer);
   procedure SliyanieSort;
   procedure SortS(var x: array of sortmas; first, middle, last: integer);
   procedure otobLinii;
 end;

Все методы описаны (нахожу метод в описании КЛАССА, нажимаю Ctrl+Shift+C и описываю)
Почему-то с первым классом работает, с остальными делаю то же самое, но уже не работает..


 
Amoeba ©   (2008-06-08 00:15) [1]


> Здравствуйте! У меня прога выдает такую ошибку:
> [Pascal Error] Unit8.pas(70): E2003 Undeclared identifier:
>  "otobZvezdi"
> [Pascal Error] Unit8.pas(70): E2003 Undeclared identifier:
>  "otobLinii"
> [Pascal Error] Unit8.pas(70): E2003 Undeclared identifier:
>  "SimpleSort"
> [Pascal Error] Unit8.pas(70): E2003 Undeclared identifier:
>  "SliyanieSort"
> [Pascal Error] Unit8.pas(70): E2003 Undeclared identifier:
>  "zapRaspr"
> [Pascal Error] Unit8.pas(70): E2003 Undeclared identifier:
>  "zapRandom"


Так возьми и добавь в модуле Unit8 в Uses: otobZvezdi, otobLinii, SimpleSort, SliyanieSort,
zapRaspr, zapRandom
Ведь все ясно и прозрачно, как божий день. И компилятор тебе уже все прокричал. Или "чукча не читатель, чукча писатель"?


 
rena ©   (2008-06-08 00:38) [2]

?? зачем в модуль добавлять процедуры, объявленные в том же модуле?


 
rena ©   (2008-06-08 00:45) [3]

Все эти методы описаны далее в самом модуле

> Все методы описаны (нахожу метод в описании КЛАССА, нажимаю
> Ctrl+Shift+C и описываю)

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


 
Amoeba ©   (2008-06-08 00:56) [4]


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

Sorry, оказывается это названия процедур...

> Все эти методы описаны далее в самом модуле

В таком случае строку 70 модуля  Unit8 на бочку!


 
rena ©   (2008-06-08 01:15) [5]

TClass1=class(TInterfacedObject,I_Int1,I_Int2,I_Int3)
    a:array of Sortmas;
 //Сортировка выбором
   constructor Create;
   procedure ZapAddit;
   procedure QSort(var a: array of Sortmas; iLo, iHi: Integer);
   procedure QuicklySort;
   procedure otobMozaika;
 end;

строка "  end; " -это и есть строка 70, я не пойму в чем тут дело..


 
rena ©   (2008-06-08 01:41) [6]

методом проб и ошибок поняла, что он вроде как  видит только первый класс, который прямо после интерфейсов описываешь, а последующие за ним, хотя ничем не отличаются, не видит..почему так?


 
Ляпа   (2008-06-08 14:48) [7]


> rena ©   (08.06.08 01:41) [6]

Класс должен реализовывать все методы интерфейса.


 
zensan ©   (2008-06-11 15:19) [8]

Чтобы этого не делать можно ещё и так например

TClass1=class(TInterfacedObject,I_Int1,I_Int2,I_Int3)
   a:array of Sortmas;
  constructor Create;
  procedure ZapAddit;
  procedure QSort(var a: array of Sortmas; iLo, iHi: Integer);
  procedure QuicklySort;
public
  ...
  property Int1: TInt1 read FInt1 implements I_Int1;
  property Int2: TInt2 read FInt2 implements I_Int2;

end;


В конструкторе не забудь создать а в деструкторе разрупить классовые переменные.



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

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

Наверх




Память: 0.47 MB
Время: 0.008 c
3-1201969179
Lamer666
2008-02-02 19:19
2008.07.13
Записи ADOQuery


15-1211963337
Dmitry S
2008-05-28 12:28
2008.07.13
jack128


2-1213494964
DJ_UZer
2008-06-15 05:56
2008.07.13
SynEdit добавление текста


15-1212063606
Reindeer Moss Eater
2008-05-29 16:20
2008.07.13
asus P5K PRO не видит камеру через 1394


2-1213621632
snake-as
2008-06-16 17:07
2008.07.13
Простая хэш - функция





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