/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Problemer med PSafeArray...
Fra : Thomas Eg Jørgensen


Dato : 23-03-04 10:12

Hej

Jeg sidder og bøvler lidt med at fylde nogle data i en PSafeArray...

Jeg har følgende datastruktur opgivet:

TOrder_SC = packed record
eOrderType: __MIDL___MIDL_itf_SilentCommerce_0000_0001;
xHeaderInfo: TOrderHeaderInfo_SC;
nShipToExists: Integer;
xShipTo: TCustomer_SC;
nBillToExists: Integer;
xBillTo: TCustomer_SC;
nNumberOfItems: Integer;
xOrderItems: PSafeArray;
end;

Sidste linje i strukturen volder mig problemer. I xOrderItems skal jeg have
x-antal udgaver af følgende struktur:

TOrderItem_SC = packed record
nPositionItem: Integer;
xMaterial: TMaterial_SC;
sShortText: WideString;
nRequestedQuantity: Integer;
sQuantityUnit: WideString;
nPartialDelivery: Integer;
nAlternativeMaterialAllowed: Integer;
nBackOrderAllowed: Integer;
sDeliveryDate: WideString;
end;

Jeg har forsøgt mig med:
int1:=0;
SafeArrayPutElement(xOrder.xOrderItems,int1,XOrderItem);

Men et efterfølgende kald til:
showmessage(inttostr(SafeArrayGetDim(xorder.xOrderItems)));

Giver mig i al fald ikke størrelsen på array'en, nemlig 53426 eller noget i
den retning?

Jeg har googlet på problemet de sidste par dage og synes ikke rigtig jeg er
i stand til at finde noget brugbart, sandsynligvis fordi jeg aldrig har
arbejdet med denne type data før og ikke rigtig ved hvad jeg skal lede
efter...
Alle steder anbefaler folk at man bruger typen "Variant" i stedet for
PSafeArray, men når jeg forsøger at oprette et array af typen variant påstår
compileren at typen "TOrderItem_SC" ikke er en gyldig "variant-type"...?

Håber nogen herinde har et par guldkorn de kan kaste?

MVH
Thomas



 
 
Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409080
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste