Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wieviele Parameter passen in eine Procedure ??? (https://www.delphipraxis.net/27594-wieviele-parameter-passen-eine-procedure.html)

TiGGaH 12. Aug 2004 18:45


Wieviele Parameter passen in eine Procedure ???
 
Huhu meine edlen Helfer :hi:
Ich bin dabei ein Mp3Sortier Programm zu schreiben. Klappt soweit super, aber nu stehe ich vor einem für mich unlösbarem Problem. Ich habe eine procedure mit 16 Parametern, was euch wahrscheinlich die Haare ausreissen lässt :-D Nun geht das aber nicht. Mit 15 Parametern ging das aber noch, und ein Programmierfehler schliesse ich aus. Nun meine Frage: Gibt es eine Maximalanzahl von Parametern ???

(Ich hoffe ihr versteht meine Frage :wiejetzt: )

Duffy 12. Aug 2004 18:57

Re: Wieviele Parameter passen in eine Procedure ???
 
Hallo TiGGaH.
Zitat:

Zitat von TiGGaH
Ich habe eine procedure mit 16 Parametern

ich habe zwar keine Antwort auf dein Problem, aber wie kann man ein procedure mit 16 Parameter haben???
Ich bin echt sprachlos ...

bye
Claus

[EDIT]Eine Lösung gibt es doch, alles in einen Record und ab. Das ist nur ein Parameter.[/EDIT]

TiGGaH 12. Aug 2004 19:01

Re: Wieviele Parameter passen in eine Procedure ???
 
:-D das geht eigentlich ganz einfach. Zuerst waren das net so viele, aber nach un nach wurden das immer mehr und nu sind es 16 ...

wie geht das mit dem record???

Duffy 12. Aug 2004 19:07

Re: Wieviele Parameter passen in eine Procedure ???
 
Zitat:

Zitat von TiGGaH
wie geht das mit dem record???

Delphi-Quellcode:
TMyeRec = record
    Variable1: Boolean;
    Variable2: string;
    Variabl3: string;
end;

...
procedure myProcedure(Parameter: TMyRec);
bye
Claus

TiGGaH 12. Aug 2004 19:12

Re: Wieviele Parameter passen in eine Procedure ???
 
Vielen Dank soweit, werde ich gleich mal probieren, aber geht das auch, wenn sich die Werte der Variablen in der procedure ändern und ich die in ner anderen procedure auch verwenden möchte?

(ich bin der Meister des unverständlichen Ausdrückens ...)

Duffy 12. Aug 2004 19:15

Re: Wieviele Parameter passen in eine Procedure ???
 
aber sicher ....

einen Versuch, es einfach auszuprobieren, wäre es wert ...

bye
Claus

TiGGaH 12. Aug 2004 19:20

Re: Wieviele Parameter passen in eine Procedure ???
 
Nu muss ich noch was fragen :-D

Was bedeutet der Error: Types of actual and formal var parameters must be identical ???


Das mit dem RECORD klappt super :) (Doch ich glaube mein Problem lag doch nicht an der Anzahl der Parameter)

Tubos 12. Aug 2004 19:37

Re: Wieviele Parameter passen in eine Procedure ???
 
Den Fehler bekomme ich, wenn ich einen string[50] als var-parameter an eine prozedur übergebe bei der die variable als string definiert ist.
Die Typen müssen also genau übereinstimmen!

TiGGaH 12. Aug 2004 19:43

Re: Wieviele Parameter passen in eine Procedure ???
 
Bei mir sah das etwa so aus:

Delphi-Quellcode:
procedure lala(var test1:string);
und dann hatte ich da sowas in meinem Quelltext

Delphi-Quellcode:
lala(Label1.Caption);
nur halt n "paar" Parameter mehr :)

fiasko 12. Aug 2004 20:29

Re: Wieviele Parameter passen in eine Procedure ???
 
Zitat:

Zitat von Tubos
Die Typen müssen also genau übereinstimmen!

:wiejetzt: - Was ist den ungenau übereinstimmen? :gruebel:


@TiGGaH:

TLabel.Caption ist keine String-Variable sondern eine Property vom Typ TCaption. Mußt wohl den Umweg über eine String-Variable gehen müssen oder ein TLabel übergeben.

The-X 12. Aug 2004 21:40

Re: Wieviele Parameter passen in eine Procedure ???
 
Zitat:

Zitat von fiasko
TLabel.Caption ist keine String-Variable sondern eine Property vom Typ TCaption. Mußt wohl den Umweg über eine String-Variable gehen müssen oder ein TLabel übergeben.

Dann sieh dir mal die Deklaration des Property an... das müsste AFAIk String sein ?

ripper8472 12. Aug 2004 21:51

Re: Wieviele Parameter passen in eine Procedure ???
 
beim lesen/schreiben der property werden aber funktionen aufgerufen -> TProperty <> String

fiasko 13. Aug 2004 07:50

Re: Wieviele Parameter passen in eine Procedure ???
 
Zitat:

Zitat von ripper8472
beim lesen/schreiben der property werden aber funktionen aufgerufen -> TProperty <> String


Das mag ja alles sein, aber wenn du eine Variable als var übergibst muß dafür eine Variable verwendet werden. Ein Property ist jedoch nur ein Wrapper - man definiert Funktionen zum setzen und lesen von Properties. Für ein var Parameter brauchst du aber eine echte Variable, denn der Kompiler übergibt eigentlich eine Referenz darauf an die Funktion in der dieser dann gleich wieder dereferenziert wird.

Bei einer Property stehen dahinter aber wie gesagt eine Funktion zum lesen und eine zum schreiben -> das kann schon im Ansatz nicht funktionieren.

TiGGaH 13. Aug 2004 08:38

Re: Wieviele Parameter passen in eine Procedure ???
 
Wenn man die Variable ohne var übergibt geht das aber.

fiasko 13. Aug 2004 08:42

Re: Wieviele Parameter passen in eine Procedure ???
 
Zitat:

Zitat von TiGGaH
Wenn man die Variable ohne var übergibt geht das aber.

Ist ja auch klar, denn dann kopiert er nur den Wert - und den bekommt er ja von der Property ohne Probleme über die Lesen-Funktion. Dann wirken sich aber Änderungen auf den Parameter nur lokal in deiner Prozedur aus...

sakura 13. Aug 2004 08:51

Re: Wieviele Parameter passen in eine Procedure ???
 
Um die ursprüngliche Frage zu beantworten. Wo das Maximum an Parameter liegt, das weiß ich auch nicht, allerdings habe ich gerade mal eine mit 400 Parametern gebastelt und Delphi nimmt diese an :shock:

Wie auch immer. Im allgemeinen sollte eine Parameterliste wohl 5-6 Parameter nicht überschreiten, sonst wird es einfach zu unübersichtlich. Ausserdem zeugt das imho von einem unüberdachten Design ;)

...:cat:...

TiGGaH 13. Aug 2004 09:23

Re: Wieviele Parameter passen in eine Procedure ???
 
jo, aber das ganze umzuschreiben is noch dramatischer :D

Ich kann dir ja mal bei Gelegenheit den Source zeigen :cyclops: Der hats in sich (vor ProgrammierUNstandarts)

Dannyboy 13. Aug 2004 10:46

Re: Wieviele Parameter passen in eine Procedure ???
 
Zitat:

Der hats in sich (vor ProgrammierUNstandarts)
[OT] Ihr immer mit Euren Standarten. :mrgreen: [/OT]


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