Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Providers (https://www.clubdelphi.com/foros/forumdisplay.php?f=10)
-   -   Problema con Psafearray (https://www.clubdelphi.com/foros/showthread.php?t=84429)

roberto_alg 17-10-2013 18:31:56

Problema con Psafearray
 
Hola gente,
Tengo un pequeño gran problema, pequeño porque estoy seguro que es fácil de resolver, grande porque llevo varios dias estancado.
Os comento, quiero enviar un Psafearray desde un serverCOM y luego recuperar esos datos.
En realidad quiero enviar pares nombre-valor donde el nombre seria string y el valor tipo integer, pero primero que funcione esto.
Os paso el sencillo codigo de test que estoy haciendo. Al pulsar el botón me tiene que mostrar el valor de un elemento del Psafearray
Le he añadido una comprobación que me dice que estoy enviando mal los parámetros con SafeArrayGetElement y me dice que está mal enviados, pero no se por qué. He mirado mil ejemplos y nada. Los misterios de los safearrays, la documentación de msdn, pero no encuentro el fallo o fallos

function pipo:PsafeArray;
var
Data: Variant;
SafeArray: PSafeArray;

begin
Data := VarArrayCreate([0, 1], VT_VARIANT);
Data[0]:=1;
Data[1]:=2;
SafeArray := PSafeArray(TVarData(Data).VArray);
result:=SafeArray;
end;


procedure TForm2.Button1Click(Sender: TObject);
var

SafeArray: PSafeArray;
LBound, HBound, I : Integer;
D: integer;

begin
safeArray:=pipo;
SafeArrayGetLBound(safeArray, 1, LBound); //esto lo imprimo y sale correcto
SafeArrayGetUBound(safeArray, 1, HBound); //esto lo imprimo y sale correcto
I:=0;

if E_INVALIDARG=SafeArrayGetElement(safeArray, I, D) then
begin
showMessage('caca de argumentos'); //siempre sale caca :(
end
else begin
showMessage('argumentos niquelados');
end;

showMessage(inttostr(D));
end;

Os estaría bastante agradecido!


La franja horaria es GMT +2. Ahora son las 05:40:07.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi