![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Интерфейсы
rena © (2008-06-07 23:48:00)Здравствуйте! У меня прога выдает такую ошибку:
[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 и описываю)
Почему-то с первым классом работает, с остальными делаю то же самое, но уже не работает..
zensan (2008-06-11 15:19:00) [1]Чтобы этого не делать можно ещё и так например
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;
В конструкторе не забудь создать а в деструкторе разрупить классовые переменные.
Ляпа (2008-06-08 14:48:00) [2]
> rena © (08.06.08 01:41) [6]
Класс должен реализовывать всеметоды интерфейса.
rena (2008-06-08 01:41:00) [3]методом проб и ошибок поняла, что он вроде как видит только первый класс, который прямо после интерфейсов описываешь, а последующие за ним, хотя ничем не отличаются, не видит..почему так?
rena (2008-06-08 01:15:00) [4]
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, я не пойму в чем тут дело..
Amoeba (2008-06-08 00:56:00) [5]
> тем более, впервые слышу, чтобы в uses можно было названия
> процедур писать..
>
Sorry, оказывается это названия процедур...
> Все эти методы описаны далее в самом модуле
В таком случае строку 70 модуля Unit8 на бочку!
rena (2008-06-08 00:45:00) [6]Все эти методы описаны далее в самом модуле
> Все методы описаны (нахожу метод в описании КЛАССА, нажимаю
> Ctrl+Shift+C и описываю)
т.е это не отдельные модули, а просто процедуры..
тем более, впервые слышу, чтобы в uses можно было названия процедур писать..
rena (2008-06-08 00:38:00) [7]?? зачем в модуль добавлять процедуры, объявленные в том же модуле?
Amoeba (2008-06-08 00:15:00) [8]
> Здравствуйте! У меня прога выдает такую ошибку:
> [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
Ведь все ясно и прозрачно, как божий день. И компилятор тебе уже все прокричал. Или "чукча не читатель, чукча писатель"?