AGB  ·  Datenschutz  ·  Impressum  







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

Unendlich Parameter

Ein Thema von DarkItachi · begonnen am 29. Dez 2010 · letzter Beitrag vom 29. Dez 2010
Antwort Antwort
Seite 1 von 2  1 2      
DarkItachi

Registriert seit: 28. Dez 2009
Ort: Berlin
130 Beiträge
 
Delphi 2007 Enterprise
 
#1

Unendlich Parameter

  Alt 29. Dez 2010, 10:03
Delphi-Version: 2007
Hallöchen!

Wie kann man eine Procedure mit unendlich Parametern schreiben? Also wie ist die Syntax dafür?
WriteLN() hat das ja, aber ich finde WriteLN() nicht in der System-Unit...

Könnte mir das jemand erklären?

Dankeschön
Developer since age 14
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Unendlich Parameter

  Alt 29. Dez 2010, 10:08
Hi Julian,

unendliche Anzahl an Parametern verschiedener Typen,
oder unendliche Anzahl eines Typs?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
DarkItachi

Registriert seit: 28. Dez 2009
Ort: Berlin
130 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: Unendlich Parameter

  Alt 29. Dez 2010, 10:11
In meinem Falle: Unendliche Anzahl von Strings;
Dabei soll das kein StringArray oder ähnliches sein...
Denn das wüsste ich ja schon... Ich will ja alles wissen


BTW:
Ahhh. Auszug aus System.pas:
Code:
{ Predefined constants, types, procedures, }
             { and functions (such as True, Integer, or }
             { Writeln) do not have actual declarations.}
             { Instead they are built into the compiler }
             { and are treated as if they were declared }
             { at the beginning of the System unit.    }
Developer since age 14
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#4

AW: Unendlich Parameter

  Alt 29. Dez 2010, 10:22
Die Format-Funktion nimmt "unendlich viele" Parameter entgegen, allerdings brauchst du dann ein array of const .

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
DarkItachi

Registriert seit: 28. Dez 2009
Ort: Berlin
130 Beiträge
 
Delphi 2007 Enterprise
 
#5

AW: Unendlich Parameter

  Alt 29. Dez 2010, 10:28
gibt es dann noch eine andere Möglichkeit?

Ich möchte nämlich eine procedure schreiben, die öffentlich zugänglich ist, und kein User die Procedure ändern muss, damit er sie nutzen kann...

Ein Beispiel wäre eine ListView.Items.Add procedure:

Code:
procedure sProc1(a: TListView; [P1; [..., PN]]);
begin
 With a.Items.Add do begin

 end;
end;
Also wie die WriteLN procedure
Developer since age 14

Geändert von DarkItachi (29. Dez 2010 um 10:33 Uhr)
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Unendlich Parameter

  Alt 29. Dez 2010, 10:28
.. bei WriteLn ist das Compiler Magic.
Ein Beispiel mit array of const kannst Du hier finden.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Unendlich Parameter

  Alt 29. Dez 2010, 10:50
bei einem Typ: array of ... (dieses muß aber in der Prozedur und nicht alseigentständiger Typ deklariert sein, also als Open-Array)
bei unbestimmten/gemischten Typen: array of const .
ansonsten gibt es noch die vordefinierten Parameter und überladene Prozeduren.

Delphi-Quellcode:
// beliebig viele Integer
procedure Test(Params: array of integer);

// beliebig viele gemischte Typen
procedure Test(Params: array of const);

// vordefiniert, mit einem Festen und 2 dynamischen Parametern, welche man setzen kann oder auch nicht
procedure Text(Param1: Integer; Param2: Integer = 0; Param3: Integer = 0);

// überladen (1 bis 3 Parameter)
procedure Text(Param1: Integer); overload;
procedure Text(Param1, Param2: Integer); overload;
procedure Text(Param1, Param2, Param3: Integer); overload;
Sowas wie WriteLn kann man leider nicht selber deklarieren
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Unendlich Parameter

  Alt 29. Dez 2010, 12:20
Oder lege ein Funktion mit sehr vielen vorbelegten Parametern an

Delphi-Quellcode:
  function MachWas( a: string; b: string = ''; c: string = ''; ...): string;

  ...

implementation


function MachWas( a: string; b: string = ''; c: string = ''; ...): string;
begin
    Result := a+b+c+...;
end;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#9

AW: Unendlich Parameter

  Alt 29. Dez 2010, 13:26
.. bei WriteLn ist das Compiler Magic.
Kannst du das genauer erläutern? Evt. kann man da ja mit einem kleinen Hack etwas draus machen?!

MfG
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Unendlich Parameter

  Alt 29. Dez 2010, 13:32
Wenn du dir einen eigenen Compiler schreibst :green:
Compiler magic bedeutet dass es keine normale Funktion ist sondern von Compiler direkt umgesetzt wird
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:13 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