procedure ProcessArray(const A: Variant);
var
I: Integer;
begin
if VarIsArray(A) then
begin
for I := VarArrayLowBound(A) to VarArrayHighBound (A) do
begin
A //...
end;
end;
end;
procedure Arrays;
var
V: Variant;
begin
// 1-й пример
ProcessArray(VarArrayOf([24, 78, 52]);
// 2-й пример
V := VarArrayCreate(0, 3);
V[0] := 35;
V[1] := 891;
V[2] := 6;
V[3] := 1258;
ProcessArray(V);
end;
Com - объекты
Надо создать COM объект, производящий сортировку, каким либо из методов. Сам метод реализовать смогу, а вот с помощью какого метода передать туда массив незнаю(если это вообще возможно), или надо каким-то образом добавлять по одному элементу:???:
Цитата:
Originally posted by BeelZeBoul
Сам метод реализовать смогу, а вот с помощью какого метода передать туда массив незнаю(если это вообще возможно)
Сам метод реализовать смогу, а вот с помощью какого метода передать туда массив незнаю(если это вообще возможно)
Если не зацикливаться на массивах, можно передавать что-то вроде экземпляра TList.
Альтернатива - массив в виде варианта. Создается массив при помощи VarArrayCreate или VarArrayOf. Но мне этот способ кажется менее предпочтительным. С вариантами обычно пишут плагины для Офиса - там все на них завязано.
Если не сложно киньте какой-нибудь примерчик с тем как передать, принять и хоть что-нибудь делать с этим массивом.
Цитата:
Originally posted by BeelZeBoul
Если не сложно киньте какой-нибудь примерчик с тем как передать, принять и хоть что-нибудь делать с этим массивом.
Если не сложно киньте какой-нибудь примерчик с тем как передать, принять и хоть что-нибудь делать с этим массивом.
Код:
у меня когда начиная сравнивать элементы A и A[i+1] возникает ошибка.
Цитата:
Originally posted by BeelZeBoul
у меня когда начиная сравнивать элементы A и A[i+1] возникает ошибка.
у меня когда начиная сравнивать элементы A и A[i+1] возникает ошибка.
Индексы проверяй.
Когда из приложения через сделанный интерфейс обращаюсь к любому методу(даже самому простеёшему, где уж точно нет ошибок) возникает ошибка:
Project ViewSort.exe raised exception class EAccessViolation with message 'Access violation at address 00459F1' in module 'ViewSort.exe'. Read of address 00000000'. Process stopped......
Цитата:
Originally posted by BeelZeBoul
Read of address 00000000'.
Read of address 00000000'.
Некто, более известный в миру как дядя Петя, пытается читать по указателю, равному nil.
Цитата:
Originally posted by Freeman
Некто, более известный в миру как дядя Петя, пытается читать по указателю, равному nil.
Некто, более известный в миру как дядя Петя, пытается читать по указателю, равному nil.
Спасибо об этом я и так догадался, а вот почему этот указатель пустой и как эту ошибку исправить.