![]() |
Delphi-Version: 2010
Offener Parameter-Array mit unterschiedlichen Typen
Hallo,
folgendes Problem: Ich möchte Entwicklern die meine Funktionen verwenden die Möglichkeit bieten innerhalb eines offenen Parameter-Arrays alle Typen zu übergeben. Beispiel
Delphi-Quellcode:
Ein Aufruf könnte so geartet sein:
function MyFunc(AParams: const array of Variant): Boolean;
begin // .. end;
Delphi-Quellcode:
Funktioniert wunderbar.
if MyFunc(['Hallo Welt', 123]) then
begin // .. end; Allerdings soll es den Entwicklern auch möglich sein Objekte (by Ref) zu übergeben. Bisher ist dies nur möglich indem das Objekt so übergeben wird:
Delphi-Quellcode:
Allerdings ist das recht unschön.
MyFunc([Integer(MyObject]); // Zeiger als Integer behandeln
Ziel des ganzen Spaßes ist es anonyme Werte an die Funktion bequem und schön zu übergeben. Wenn jemand einen geschickteren Weg kennt, ich bin für Vorschläge offen. Was ich allerdings nicht möchte ist, dass der Programmierer gezwungen ist ein Parameterobjekt zu erzeugen und das dann an die Funktion weitergibt. Danke Crosslink im ![]() |
AW: Offener Parameter-Array mit unterschiedlichen Typen
Hallo,
Versuchs mal so:
Delphi-Quellcode:
function MyFunc(AParams: Array of const): Boolean;
begin // .. end; // Aufruf: if MyFunc([MyObject,123,'Test123',false]) then // ... |
AW: Offener Parameter-Array mit unterschiedlichen Typen
Ich hatte das damals schon mit einem array of const versucht.
Hatte nur die verschiedenen Daten-Typen nicht korrekt auswerten können. Nun habe ich es erneut versucht und auch den Fehler gefunden:
Delphi-Quellcode:
Ich hatte mich damals auf die Hilfe verlassen nur der Typ vtUnicodeString ist
... AParams: array of const ...
for LIdx := Low(AParams) to High(AParams) do begin case AParams[LIdx].VType of vtInteger: //; vtString, vtWideString, vtUnicodeString: //; vtObject: ShowMessage('Object'); end; end; in Delphi 2010 in der Hilfe nicht beschrieben. Danke für den Tipp, jetzt klappt auch alles, was ich vor habe. :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz