Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.22;
Скачать: CL | DM;

Вниз

Как заставить локалный Variant не освобождаться?   Найти похожие ветки 

 
SAVwa ©   (2002-08-09 21:23) [0]

var
V: Variant;
begin
V := VarArrayOf("1", 1);
Action1.Tag := Integer(@V);
//V is going to free there
end;

procedure TMyForm.Action1Execute(Sender: TObject);
var
V: Variant;
begin
V := PVariant(Pointer(Action1.Tag))^;
ShowMessage(V[1]); // - error accessing Variant array
end;

Как мне передать вариант через поинтер?


 
Poirot ©   (2002-08-10 01:52) [1]

Скорее всего надо юзать параметры и глобальные переменные... т.к. локальные они и в африке локальные... они уничтожаются после работы подпрограммы... И на их месте может быть что угодно(есть малая вероятность что и ваши данный - но не факт(скорее случайность))
PS: Если кто-то мне напомнит, но я не могу вспомнить переменных типа static (напр как в VB)...


 
Набережных С.   (2002-08-10 10:15) [2]


var
PV:PVariant;
begin
GetMem(PV,SizeOf(Variant));
Action1.Tag := Integer(PV);
PV^:=VarArrayOf(["1",1]);
end;

procedure TMyForm.Action1Execute(Sender: TObject);
var
V: Variant;
begin
V := PVariant(Action1.Tag)^;
ShowMessage(V[1]); // - no error accessing Variant array
end;




Страницы: 1 вся ветка

Текущий архив: 2002.08.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
1-71164
lak_b
2002-08-13 18:38
2002.08.22
поиск в ListBox


3-70966
ppcat
2002-07-30 14:10
2002.08.22
Доступ к документам Excell с помощью ADO или ODBC


1-71086
kserg@ukr.net
2002-08-12 12:40
2002.08.22
QReport - можно ли его подставить в делфи


1-71144
robbit
2002-08-13 14:08
2002.08.22
on parent resize


14-71379
Squ
2002-07-25 08:58
2002.08.22
HALCyon