Hi jaenicke
Auch dir vielen Dank - die Sache mit den Const-Parametern sollte ich mir wohl angewöhnen.
Delphi-Quellcode:
function TOpenFileFrame.ChangeFolderIcon(const ADeskIniPath, ABmpFile: String; const AIconIndex: Integer): Boolean;
var ADesktopIni: TIniFile; const ADesktopIniParent: String;
Wobei wir auch keine Objektreferenzen als var-Parameter verwenden würden.
Die Untere Zeile deklariert allerdings lokale Variablen, wobei ich da gleich mehrere Vorgaben des Styleguids verletze:
Delphi-Quellcode:
function TOpenFileFrame.ChangeFolderIcon(LDeskIniPath, LBmpFile: String; IconIndex: Integer): Boolean;
var desktopini: TIniFile; LDesktopIniParent : String;
Die Parameter heissen hier genau gleich wie die lokalen Vaiablen in der aufrufenden Methode, in dem sie mit einem 'L' beginnen anstatt mit einem 'A'.
Vom Styleguid abweichend ist auch mein Umgang mit der Deklaration lokaler Variablen: das einleitende 'var' befindet sich immer eingerückt in der ersten Zeile der lokalen Deklarationen, während die Parameterliste mit der abschliesseden Klammer und bei Funktionen der Typangabe(hier Boolean) sich auch schon mal auf 2 Zeilen erstrecken kann.
Das, was du als Var-Parameter gelesen hast, ist also eigentlichschon eine lokkale Varable.
Das ist sozusagen mein 'Erbe' aus Delphi-1-Tagen, macht meines Erachtens aber durchaus Sinn, da dadurch oft etliche Zeilen eingespart werden können.
Andrerseits kann ich mit Konstrukten wie:
procedure foo; begin if x mod 2 = 0 then y:= a+b;end;
herzlich wenig anfangen, auch wenn dies in Pascal (noch?) möglich ist.
Gruss
Delbor