![]() |
Beliebige Menge von Objekten als Parameter übergeben?
Wie kann man in einer Prozedur als Parameter eine Menge von nicht-ordinalen Objekten übergeben, z.B.:
Delphi-Quellcode:
Ich möchte für den Paramater keinen Array-Typ verwenden, sondern am besten einen Typ, mit dem eine beliebige Menge von Objekten übergeben werden kann.
var
e1, e2, e3: TEdit; // Fehler: E2001 Ordinaltyp erforderlich: procedure DoSomething(MyEdits: Set of TEdit); begin // end; //... DoSomething([e1, e3]); //... |
Re: Beliebige Menge von Objekten als Parameter übergeben?
Wenn es dir darum geht, eine beliebige Menge zu übergeben, kannst du ein dynamisches Array verwenden.
MfG, hanselmansel |
Re: Beliebige Menge von Objekten als Parameter übergeben?
Für so etwas gibt es
![]() |
Re: Beliebige Menge von Objekten als Parameter übergeben?
Wenn es verschiedenartige Parameter sein sollen, kannst Du Dich am Quelltext der Format-Funktion orientieren:
{Delphi_2005}\source\Win32\rtl\sys\SysUtils.pas
Delphi-Quellcode:
Jürgen
procedure FmtStr(var Result: string; const Format: string;
const Args: array of const); |
Re: Beliebige Menge von Objekten als Parameter übergeben?
Zitat:
|
Re: Beliebige Menge von Objekten als Parameter übergeben?
... und FmtStr ruft FormatBuf auf, das eine Assembler-Routine ist ...
Bei Arrays muss man den einzelnen Array-Elementen vorher die Werte zuweisen. Eleganter und einfacher wäre es, wenn man die Objektnamen einfach als Parameter in den Prozeduraufruf schreiben könnte, also z.B. DoSomething([e1, e3]); aber das geht ja nicht, weil Set of kein ordinaler Typ ist. Geht das also in Object.Pascal nicht? |
Re: Beliebige Menge von Objekten als Parameter übergeben?
Zitat:
|
Re: Beliebige Menge von Objekten als Parameter übergeben?
Soweit ich weiß kannst du sehrwohl Mengen als Parameter übergeben. Du hast nur versucht, eine Menge von Objekten (oder auch deren Namen... :gruebel: ) zu erstellen, und daran hapert es AFAIK. Die Elemente müssen einen ordinalen also zählbaren Typ haben.
Es funktioniert zum Beispiel mit allen Zahlen bis 255 oder den Wochentagen oder ein paar Farben oder so... :| Darum wird dir oben geraten ein Array von Objekten zu übergeben. :thumb: |
Re: Beliebige Menge von Objekten als Parameter übergeben?
Wie also genau funktioniert es dann?
Zitat:
Gruss. P.S.: Eine doppelte Verneinung ist ja wieder als Bejaung zu verstehen, richtig? |
Re: Beliebige Menge von Objekten als Parameter übergeben?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 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