Форум: "Начинающим";
Текущий архив: 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