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

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

param as array of variant [D5]


serikoff ©   (2002-12-25 19:44:00) 

Здравствуйте.

Код вызывает "invalid variant operation".
Почему?
По логике ветка с ShowMessage(p[0]);
вообще не выполняется.

procedure func(p: array of variant);
begin
if high(p) = -1 then begin
ShowMessage("!")
end else begin
ShowMessage(p[0]);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
func([]);
end;

Спасибо.

ps. Delphi 5.


serikoff   (2002-12-25 20:08:00) [1]

Спасибо, помогло.

А собственно почему?

ps. "Казалось-бы, причем тут Л$#ков?"(c) ;-)


Clickmaker   (2002-12-25 20:03:00) [2]

Все дело в волшебном слове "const":
procedure func(const p: array of variant);


serikoff   (2002-12-25 19:56:00) [3]

procedure func(p: array of variant);
begin
if high(p) = -1 then begin
ShowMessage(inttostr(high(p)))
end else begin
//ShowMessage(p[0]);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
func([]);
end;

Выдает "-1"


Anatoly Podgoretsky   (2002-12-25 19:52:00) [4]

Ты проверил чему равен high(p) при входе в функцию?


Наверх

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