Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi VarArrayCreate mit Typ String wird nicht erstellt (https://www.delphipraxis.net/142002-vararraycreate-mit-typ-string-wird-nicht-erstellt.html)

messie 20. Okt 2009 14:40


VarArrayCreate mit Typ String wird nicht erstellt
 
Moin,

ich hab' gerade das Problem, dass VarArrayCreate sich standhaft weigert, ein variantes Array zu erstellen. Zuerst habe ich gedacht, es hätte mit der Unicode-Umstellung zu tun, aber in Delphi 6 passiert dasselbe.

Code von Button1 geht, von Button2 wirft das Programm eine EVariantCreateError.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  v : variant;
begin
  v := VarArrayCreate([0,66],varInteger);
  v[33] := 900;
  ShowMessage(IntToStr(v[33]));
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  v : variant;
begin
  v := VarArrayCreate([0,66],varString);
  v[33] := 'Moin';
  ShowMessage(v[33]);
end;
In der OH steht string als zulässiger Typ.



Grüße, Messie

sirius 20. Okt 2009 14:53

Re: VarArrayCreate mit Typ String wird nicht erstellt
 
Nimm varoleStr!

Edit: Und meine OH sagt auch folgendes:
Zitat:

Der Elementtyp darf nicht varString oder ein benutzerdefinierter Variantentyp sein. Verwenden Sie für ein variantes Stringarray den Typcode varOleStr.

messie 20. Okt 2009 15:26

Re: VarArrayCreate mit Typ String wird nicht erstellt
 
Zitat:

Zitat von sirius
Edit: Und meine OH sagt auch folgendes:
Zitat:

Der Elementtyp darf nicht varString oder ein benutzerdefinierter Variantentyp sein. Verwenden Sie für ein variantes Stringarray den Typcode varOleStr.

Stimmt, nach dreimaligem Hinsehen hab' ich es auch gefunden. Danach erstmal die Schriftgröße verkleinert :)
Hab' ich es richtig verstanden, dass varString nur für die Abfrage, was im Variant enthalten ist, gilt?

Grüße, Messie

[Edit]
Muss ich eigentlich den Variant-Speicher nach der Benutzung aufräumen oder wird das wie bei dynamsichen array gehandhabt?
[/Edit]

himitsu 20. Okt 2009 15:42

Re: VarArrayCreate mit Typ String wird nicht erstellt
 
Variants werden von Delphi automatisch freigegeben


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:33 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