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

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

SafeArray [Delphi, Windows]


Vaitek ©   (2004-12-21 13:17:00) 

Собственно, как его создать? А то в параметрах функции нужно указать SafeArray.
В хелпе как-то про него почти ничего не говорится. VarArrayCreate - не оно?

Delphi 7


Vaitek   (2004-12-22 10:03:00) [1]

А VarArray и SafeArray, в понятии дельфы - это одно и тоже?


Vitalik   (2004-12-21 15:46:00) [2]

Вот один пример из справки:
The following example creates a one-dimensional variant array with five elements. Each of the elements are of type Variant, and can therefore contain values of varying types, as is illustrated by the example. Notice in particular how the value of the last element of the array is itself a variant array.

var

 A: Variant;
begin
 A := VarArrayCreate([0, 4], varVariant);
 A[0] := 1;
 A[1] := 1234.5678;
 A[2] := 'Hello world';
 A[3] := True;
 A[4] := VarArrayOf([1, 10, 100, 1000]);
 WriteLn(A[2]); { Hello world }
 WriteLn(A[4][2]); { 100 }

end;


Вот другой:
type

 PArrayData = ^TArrayData;
 TArrayData = array[0..9, 1..3] of Integer;
var
 A: Variant;
 P: PArrayData;
 I, J: Integer;
begin
 A := VarArrayCreate([1, 3, 0, 9], varInteger);
 P := VarArrayLock(A);
 try
 for I := 0 to 9 do
   for J := 1 to 3 do
     P^[I, J] := J * 10 + I;

 finally
   VarArrayUnlock(A);

 end;
 WriteLn(A[1, 9]); { 19 }
 WriteLn(A[3, 4]); { 34 }

end;


Vaitek   (2004-12-21 14:37:00) [3]

Нашел:
Var
 RootPoint :PSafeArray;
 LV: TVarArrayBound;
Begin
LCount := 3 * SizeOf(Double);
LV.LowBound := 0;
LV.ElementCount := LCount;
RootPoint := SafeArrayCreate(varDouble, 1, LV);
End;

Сие то или не то, и будет ли оно работать?

Эламенты в массив добавляют через SafeArrayPutElement?
А что за третий параметр в ней, в хелпе я был - нифига не понял.

ХелпМе! Голова болит уже от всего этого.


Наверх

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