AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Variants und Arrays

Ein Thema von matashen · begonnen am 2. Jun 2014 · letzter Beitrag vom 4. Jun 2014
Antwort Antwort
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
471 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Variants und Arrays

  Alt 2. Jun 2014, 18:04
Hallo,

ich bekomme von einer dll ein Array in Form eines Variants. Im PDF zur dll ist das so beschrieben für VB

GetBarcodeReturn the barcode if detected. To use GetBarcode, the barcode reading functionality needs to be
enabled by BarcodeInit method.

Code:
Function GetBarcode () As Variant
Dim aa As Variant
BarCodeReturn = v.GetBarcode
List1.Clear
VarType (BarCodeReturn)
If UBound(BarCodeReturn) >= LBound(BarCodeReturn) Then
For f = LBound(BarCodeReturn) To UBound(BarCodeReturn)
List1.AddItem BarCodeReturn(f, 0) 'BarCodeString
List1.AddItem BarCodeReturn(f, 1) 'BarCode Type
List1.AddItem BarCodeReturn(f, 2) 'BarCode Orientation.
List1.AddItem BarCodeReturn(f, 3) 'BarCode Location
Next f
End If
Wie setz ich das in Delphi um?
was ich bisher versucht habe ist leider misslungen und zu Variants hab ich nichts brauchbares im Netz/Forum gefunden.

bisheriger Code (nur das wesentliche, rest rausgeschmissen wegen Übersicht)
Delphi-Quellcode:
var aa:variant;
..
aa:=video.GetBarcode;
if varisarray(aa) then begin
 if VarArrayHighBound(aa, 1)>VarArrayLowBound(aa, 1) then
    
  for I := VarArrayLowBound(aa, 1) to VarArrayHighBound(aa, 1) do
      begin
             label12.Caption:=vararrayget(aa,i);
Wenn ich die Größe des Array auslesen will und das Ergebnis in ein Memo schreibe bekomme ich nur Low=0 und High=0 oder Low=0 und High=-1
Delphi-Quellcode:
memo1.Lines.Add(inttostr(VarArrayLowBound(aa, 1)));
    memo1.Lines.Add(inttostr(VarArrayHighBound(aa, 1)));
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
471 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: Variants und Arrays

  Alt 3. Jun 2014, 14:44
*push*

immer noch aktuell, keiner eine Idee?
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#3

AW: Variants und Arrays

  Alt 3. Jun 2014, 15:30
Probier mal VarArrayLock/VarArrayUnlock. Damit sollte/könnte das gehen...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#4

AW: Variants und Arrays

  Alt 3. Jun 2014, 16:06
Ist das auch ein zwei-/mehrdimensionalas Array?

VarArrayLowBound(DasArray, DieEbene) und die 1. Ebene/Dimension wird bestimmt 0 sein.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
471 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

AW: Variants und Arrays

  Alt 3. Jun 2014, 17:04
Ist das auch ein zwei-/mehrdimensionalas Array?

VarArrayLowBound(DasArray, DieEbene) und die 1. Ebene/Dimension wird bestimmt 0 sein.
nein, bei Variants beginnt die 1. Ebene bei eins, ist nicht 0-basiert

das stimmt schon, gerade extra nochmal in der Hilfe nachgeguckt.
Zitat:
Der Parameter Dim ist für die erste Dimension 1, für die zweite Dimension 2 usw
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
471 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6

AW: Variants und Arrays

  Alt 3. Jun 2014, 17:06
Probier mal VarArrayLock/VarArrayUnlock. Damit sollte/könnte das gehen...
Hat nichts gebracht, löste Fehler aus: "Unerwarteter Variant Fehler"
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#7

AW: Variants und Arrays

  Alt 4. Jun 2014, 09:48
Vielleicht hilft das hier:
http://www.gekko-software.nl/Delphi/art08.htm
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
471 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#8

AW: Variants und Arrays

  Alt 4. Jun 2014, 10:17
Den Link kannte ich noch nicht ich seh mir das mal an, dankeschön.

Meld mich dann bei Fragen / oder bei Lösung des Problems wieder.

Gruß Matthias
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz