![]() |
Re: Optionale Parameter
[OT] :firejump: Einmal schneller als mkinzler :bouncing4:
:zwinker: :cheers: [/OT] |
Re: Optionale Parameter
Zitat:
beispielsweise... 'n dynamisches array übergeben, 'n objektliste übergeben..., default parameter, variante records, etc. pp. <HTH> |
Re: Optionale Parameter
@grenzgaenger:
Der Kapitalist war vor 4 Jahren das letzte Mal hier :zwinker: |
Re: Optionale Parameter
@grenzgaenger
und sie gibt es doch, oder habe ich was falsch verstanden? Ich meine Default Paramter... ich kann jetzt nicht sagen wie das in VBA geht, aber in Object Pascal nutzt ich sie sehr gerne.... das geht sogar mit Klassen wie z.b. eine TStringlist.... ob auch ein array geht habe ich noch nicht wirklich ausprobiert. |
Re: Optionale Parameter
Es gibt auch die Möglichkeit über Dispatch-Interfaces zu arbeiten.
Damit sind dann solche Konstruktionen möglich:
Delphi-Quellcode:
Die Open-Methode könnte noch 10 weitere Parameter haben; man braucht sie nicht anzugeben.
var
object : OleVariant; begin object := ...; // Filename, Mode und Backup sind Parameternamen, keine Variablen! object.Open(Filename:='C:\test.txt', Mode:=omReadWrite, Backup:=False); Diese Art des Aufruf ist allerdings recht langsam, da im Hintergrund einiges abgeht. Das ist aber auch der Weg, den VB einschlägt. (ein Hauptgrund, weshalb VB nicht so schnell ist) Alle Parameter sind Variants, die aufgerufene Methode erkennt dass ein Parameter nicht befüllt wurde daran, dass der Parameter = EmptyParam ist. |
Re: Optionale Parameter
Hallo,
sorry das ich den alten Thread wieder ausgrabe aber mein Problem bezieht sich auf das oben genannte Overload, sprich überladen von Methoden. Ich habe es so versucht:
Delphi-Quellcode:
Ich bekomme aber jetzt die Meldung: E1030 Ungültige Compileranweisung: 'OVERLOAD'
procedure TOutlookPro.SendEmail(body : String; slAttPaths : TStringlist); overload;
var outlookApp : TOutlookApplication; mailItem : Variant; i : Integer; begin outlookApp := TOutlookApplication.Create(Self); mailItem := OutlookApp.CreateItem(olMailItem); mailItem.Recipients.Add('alexander.bosshammer@bestserv.de'); mailItem.Subject := 'Supportanfrage bsMIO'; mailItem.Body := body; for i := 0 to slAttPaths.Count do begin mailItem.Attachments.Add(slAttPaths[i]); end; mailItem.Send; end; procedure TOutlookPro.SendEmail(body : String); overload; var outlookApp : TOutlookApplication; mailItem : Variant; begin outlookApp := TOutlookApplication.Create(Self); mailItem := OutlookApp.CreateItem(olMailItem); mailItem.Recipients.Add('alexander.bosshammer@bestserv.de'); mailItem.Subject := 'Supportanfrage bsMIO'; mailItem.Body := body; mailItem.Send; end; Woran liegt das und wie bekomme ich die Meldung weg? :gruebel: VG Alex |
Re: Optionale Parameter
Das "overload" gehört in die Klassen-Deklaration.
Delphi-Quellcode:
type
TMyClass = class(TSomething) public procedure SomeProc(i: integer); overload; //hier overload hinschreiben procedure SomeProc(s: string); overload; procedure SomeProc(i: integer; s: string); overload; end; ... procedure TMyClass.SomeProc(i: integer); //hier nicht begin // end; |
Re: Optionale Parameter
Wie sieht die Methodendeklaration im Interface aus?
Ist die Methode überladbar? |
Re: Optionale Parameter
Noch eine Anmerkung zu den Standardparameter, sie müssen immer als letztes in der Deklaration angegeben werden.
|
Re: Optionale Parameter
Danke :) DeddyHs Antwort hat geholfen :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:45 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