Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Че-то я ничего не понимаю... [XP]


Kolan ©   (2006-10-14 20:19:00) 

Здравствуйте,
 Не пойму в чем ошибка:
TByteArrayObject = class(TInterfacedObject, IByteArrayObject)
 private
   FArray: TByteArray;


function TByteArrayObject.GetHigh: Integer;
begin
 Result := High(FArray); // Compile Error
end;


На указанной строчке получаю:

[Pascal Error] KArrayTypes.pas(76): E2066 Missing operator or semicolon


Что не так?

PS
 D2006


Kolan   (2006-10-14 21:35:00) [1]


> Лучше переименовать, а то будешь нарываться на ошибки, которые
> компилятор не сможет определить, дай более значимое имя
> ХайЧего
>

Да так и сделаю тк System прописывать надо много где - оч. напрягает


Anatoly Podgoretsky   (2006-10-14 21:18:00) [2]

Kolan ©   (14.10.06 20:34) [8]
Лучше переименовать, а то будешь нарываться на ошибки, которые компилятор не сможет определить, дай более значимое имя ХайЧего


RASkov   (2006-10-14 20:58:00) [3]

> [13] Kolan ©   (14.10.06 20:53)

:)) надеюсь вопрос решен?


Kolan   (2006-10-14 20:53:00) [4]


> RASkov   (14.10.06 20:43) [12]

Комрад, искрене благодарю за помощь, но.... :)


> Ниче не понял:(

Это я тебя не понял.. Конечно в посте 0 я привел не полный класс...


> Ну так и написать вот так

Ну я понимаю :)


> Если конечно System у тебе не переопределен:)
>

Упаси бог.


> .....
>  function GetCountArray: Integer;
> public
>  property CountArray: Integer read GetCountArray;
> .....
>
> function TByteArrayObject.GetCountArray: Integer;
> begin
>  Result:=High(FArray);
> end;
>
> Сделай так.


Перефразирую Кузьмича из "Особенностей нац. охоты" - англйский язык учи, прегодится :)

High(FArray); - возврошает индекс последнего элемента массива.
GetCountArray- плохо переводится на русский, так как должно бы выглядеть так:
GetArrayCount- и переводится это "Получить кол-во эл. в массиве". Так что....

В любом случае, всех благодарю :)


RASkov   (2006-10-14 20:43:00) [5]

> Наверно просто имя расширить удобнее...

.....
 function GetCountArray: Integer;
public
 property CountArray: Integer read GetCountArray;
.....

function TByteArrayObject.GetCountArray: Integer;
begin
 Result:=High(FArray);
end;


Сделай так.


RASkov   (2006-10-14 20:39:00) [6]

Если я правильно понял, то у тебя в этом классе есть свойство High и для получения его значения function GetHigh: Integer;
то [10]. Если конечно System у тебе не переопределен:)


RASkov   (2006-10-14 20:36:00) [7]

> [8] Kolan ©   (14.10.06 20:34)

Ну так и написать вот так

function TByteArrayObject.GetHigh: Integer;
begin
Result := System.High(FArray);
end;


RASkov   (2006-10-14 20:35:00) [8]

> В этом варианте получится класс(выделен жирным), функция,
> и.. короче белиберда :)

Ниче не понял:(


Kolan   (2006-10-14 20:34:00) [9]


> А как лучше решить?

Наверно просто имя расширить удобнее...


RASkov   (2006-10-14 20:33:00) [10]

> Result := System.Low(FArray);


Kolan   (2006-10-14 20:32:00) [11]


> по имени High есть

Точно.

Так, спать еще не пойду. А как лучше решить? Просто расширить имя
 Result := System.Low(FArray);
или имя свойства изменить?


> RASkov   (14.10.06 20:20) [2]

Благодарю за помощь.

В этом варианте получится класс(выделен жирным), функция, и.. короче белиберда :)
TByteArrayObject = class(TInterfacedObject, IByteArrayObject)
>
> private
>   FArray: TByteArray;
> end;

> function TByteArrayObject.GetHigh: Integer;
> begin
> Result := High(FArray); // Compile Error
> end;


RASkov   (2006-10-14 20:29:00) [12]

> Ты бы хоть на русский перевести попробовал, что ли...

Мне это не надо:) я знаю эту ошибку.
Исходя из [0] - пропущен end; к новому классу.
Остальное верно - если только не [4]


DrPass   (2006-10-14 20:26:00) [13]


> Ошибка - Не законченная строка(или как там еще).

Ты бы хоть на русский перевести попробовал, что ли...

> Result := High(FArray); // Compile Error

Подозреваю, у тебя там свойство по имени High есть, или еще какая-нибудь гадость в этом духе. Которая, соответственно, скрывает собой функцию High


RASkov   (2006-10-14 20:21:00) [14]

> E2066 Missing operator or semicolon

Ошибка - Не законченная строка(или как там еще).


Kolan   (2006-10-14 20:20:00) [15]

забыл:
 TByteArray = array of Byte;


RASkov   (2006-10-14 20:20:00) [16]

> TByteArrayObject = class(TInterfacedObject, IByteArrayObject)
>
> private
>   FArray: TByteArray;
> end;
> function TByteArrayObject.GetHigh: Integer;
> begin
> Result := High(FArray); // Compile Error
> end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо