Wenn ich den String direkt übergebe sagt mir der Compiler es seien zu viele Parameter
DataLink ist global deklariert
Das mit den Klammern habe ich nicht verstanden. Sorry
Logisch...
Es gibt verschiede Arten von Übergrabeparamtetern
Delphi-Quellcode:
Procedure Foo(S : String);
Procedure Foo(Var S : String);
Procedure Foo(Const S : String);
Procedure Foo(Out S : String);
Ohne Parameter wird von der übergebenen Variablen eine Kopie erzeugt.
Lokale Änderungen haben keinen Effekt nach außen.
Hier kannst Du auch
Foo('Whatever');
übergeben.
Bei Var, erwartet der Compiler auch eine Variable da diese innerhalb der Procedure änderbar ist. Somit kannst du bei VAR keine Konstante 'Whatever' übergeben.
Const, kann beides übernehmen, da innerhalb der procedure (Compilermagic) der String nicht geändert werden kann...
Out ist fast wie Var - zeigt jedoch, dass die Variable als Ausgabeparameter definiert ist und die Procedure keine Initialisierung hiervon erwartet.
und Klammern weg bedeitet:
S := 'Cool';
und nicht
S := ('Cool');
Mavarik