![]() |
AW: array als var-Parameter
Das Problem mit varargs ist, dass du die Funktion nicht in Delphi schreiben kannst.
Du musst die Funktion in Delphi schreiben und dann über eine DLL importieren. Weiß nicht ob sich in diesem Fall der Aufwand lohnt. Und Pointer müsste man trotzdem übergeben. Es fallen dann nur die Array-Klammern weg []. |
AW: array als var-Parameter
Zitat:
"Ich möchte eine Procedure, die soll mehreren Integer-Variablen den Wert 0 zuweisen." Aber gut. Um mehrere Datentypen zu bedienen, kann man den Overload- und den Array-Ansatz kombinieren. Der folgende Vorschlag ist recht kurz in der Implementation, ist skalierbar und Du brauchst kein "@" zu schreiben::wink:
Delphi-Quellcode:
type
TDataTypes = (dtInt, dtStr, dtReal, dtExtended); // bei Bedarf erweitern procedure vToZ (dt: TDataTypes; var v1, v2); overload; procedure vToZ (dt: TDataTypes; var v1, v2, v3); overload; procedure vToZ (dt: TDataTypes; var v1, v2, v3, v4); overload; implementation {$R *.dfm} procedure SetVars(dt: TDataTypes; APointers: Array of Pointer); var i: Integer; begin for i := Low (APointers) to High(APointers) do begin case dt of dtInt: Integer (APointers[i]^) := 0; dtStr: String (APointers[i]^) := ''; // .. bei Bedarf weitere Typen end; end; end; procedure vToZ (dt: TDataTypes; var v1, v2); overload; begin SetVars (dt, [@v1, @v2]); end; procedure vToZ (dt: TDataTypes; var v1, v2, v3); overload; begin SetVars (dt, [@v1, @v2, @v3]); end; procedure vToZ (dt: TDataTypes; var v1, v2, v3, v4); overload; begin SetVars (dt, [@v1, @v2, @v3, @v4]); end; procedure TForm14.FormCreate(Sender: TObject); var itest1, itest2, itest3, itest4: Integer; strtest1, strTest2: string; begin iTest1 := 10; iTest2 := 20; iTest3 := 30; iTest4 := 40; strTest1 := 'Test'; StrTest2 := 'Hallo'; vToZ (dtInt, iTest1,iTest2, iTest4); // Integer vToZ (dtStr, strTest1, strtest2); // string ShowMessage (iTest1.ToString); // Zeigt 0 ShowMessage (strTest1); //"zeigt" einen leeren string end; |
AW: array als var-Parameter
Zitat:
![]() Den Rest des Thread sehe ich als erledigt an. :!: |
AW: array als var-Parameter
Zitat:
Kein Sourcecode : 42! Kein Interesse an weiteren Antworten : Den Rest des Thread sehe ich als erledigt an! :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:50 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-2025 by Thomas Breitkreuz