Avatar billede koonz Nybegynder
01. juli 2005 - 12:27 Der er 5 kommentarer og
1 løsning

Data fra pSafeArray

Hejsa

Jeg kæmper lidt med noget COM/ActiveX (Det er desværre ikke noget jeg kender særligt godt til).

I den forbindelse henter jeg nogle data der ligger i et pSafeArray.

Jeg vil nu gerne have de data "Pakket ud" eller i det mindste se hvad der ligger i det array.

Hvordan gør jeg det ?
Avatar billede borrisholt Novice
04. juli 2005 - 00:21 #1
som alle os andre : søger på google !

http://www.google.com/search?sourceid=navclient&ie=UTF-8&rls=WZPA,WZPA:2005-25,WZPA:en&q=pSafeArray+%2B+delphi
Avatar billede koonz Nybegynder
04. juli 2005 - 22:03 #2
Hehe
Ja det har jeg forsøgt, måske er det mig - men jeg kan ikke rigtig finde noget jeg kan bruge.
Avatar billede borrisholt Novice
04. juli 2005 - 23:21 #3
Så har du sq ikke ledt redt godt :
http://www.thedelphimagazine.com/samples/1355/1355.htm
» Listing 20

Det tog 30 sekunder at finde.
Avatar billede koonz Nybegynder
05. juli 2005 - 00:31 #4
Oki, måske jeg misforstår noget, men putter den funktion ikke data IND i et pSafeArray ?
Avatar billede borrisholt Novice
05. juli 2005 - 06:49 #5
j oden funktion putter data ind i en pSafeArray. Men hvis du ved hvordan du putter data ind kan du også trække dem ud

function TDataSetScriptControl.Validate(strField: string): boolean;
var
  strProcName: widestring;
  aParams : PSafeArray;
  vParams : Variant;
begin
  Result:=True;
  strProcName:='OnValidate'+strField;
  if Assigned(FDataSet) and ProcedureExists(strProcName) then
  begin
    vParams  := VarArrayCreate([0, 0], varVariant); 
    vParams[0]:=FDataSet.FieldByName(strField).Value;
    aParams  :=PSafeArray(TVarData(vParams).VArray); 
    Result := Run(strProcName, aParams);
  end;
end;



pSafeArray er et array af Varianter så du skal vide hvad der ligger der i ellers må du bruge funktionerne fra Variants.pas til at finde ud af hvad du har fundet  :

function VarType(const V: Variant): TVarType;
function VarAsType(const V: Variant; AVarType: TVarType): Variant;
function VarIsType(const V: Variant; AVarType: TVarType): Boolean; overload;
function VarIsType(const V: Variant; const AVarTypes: array of TVarType): Boolean; overload;
function VarIsByRef(const V: Variant): Boolean;


To mention but a few.

Jens B
Avatar billede koonz Nybegynder
16. juli 2013 - 11:14 #6
Luk
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester