hi,
Bei 1.) weiss ich leider nicht was du meinst.
Deswegen kann ich dir nur zu 2.) etwas sagen.
Also du fragst da ja nach mehreren Sachen gleichzeitig

.
1. Wie kann ich der Prozedur einen Parameter übergeben, bei dem es egal ist was es für ein Datentyp ist?
A:
Delphi-Quelltext
1:
| procedure testproc( Variable1 : Variant); |
Dadurch kannst du alles übergebne wozu du lustig bist. Es kann jedoch zu Fehlern in der Prozedure kommen, wenn etwas nicht korrekt umgewandelt werden kann.
2. Wie kann ich der Prozedure sagen, dass sie Standartwerte benutzt und man die Parameter deswegen nicht unbedingt angeben muss.
A:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.testproc( StatBar1 : TStatusBar = nil); begin if StatBar <> nil then begin end else begin end; end; |
Du kannst nun eine Statusbar übergeben. Wenn nicht, so wird einfach der Wert benutz der hinter dem "=" steht. Dort könnte natürlich auch eine andere Standart-Statusbar deines Progs stehen die die Prozedur verwenden soll, wenn keine andere übergeben worden ist.
Wenn du mehrere Parameter mit Defaultwerten angibst, so musst du von Links nach rechts alle Werte übergeben bis zu dem Wert den du abändern willst. z.B. du hast 5 Paramter in einer Prozedur mit Defaultwerten versehen. Und nun möchtest du bei einem Aufruf den 3 Parameter abändern, so musst du im Prozeduraufruf Parameter 1-3 übergeben.
3. Wie kann man eine Prozedure mit einem Parameter definieren, wobei dieser Parameter jedoch aus mehreren verschiedenen Variablentypen bestehen kann.
A:
Delphi-Quelltext
1: 2:
| procedure tester( var1 : integer); override; procedure tester( var1 : string); override; |
Du hast nun zwei Prozeduren, die du mit dem selben aufruf ansteuern kannst. Der Compiler unterscheidet an Hand der Variablentypen welche
Prozedur du benutzen möchtest.
Dadurch muss natürlch die Parameter eindeutig am Variablentyp zu unterscheiden sein.
Und du must die selbe Prozedur auch jeweils einmal schreiben für die jeweils verschiedenen Variablentypen.
Ich hoffe dir beantwortet das ein paar Fragen.