Meine Frage ist, ob man einer function mehrere Parametertypen als Startparameter geben kann....?
Also sowas in der Art:
Code: Alles auswählen
function test( test1 : PWideChar or String): Boolean;
begin
(...)
Result:=true;
end;
MfG
mark332
Code: Alles auswählen
function test( test1 : PWideChar or String): Boolean;
begin
(...)
Result:=true;
end;
Code: Alles auswählen
function test(test1: PWideChar; test2: String);
begin
(...)
end;
Code: Alles auswählen
function test(test1: PWideChar):boolean; overload;
function test(test1: String):boolean; overload;
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
Code: Alles auswählen
program Project1;
{$mode objfpc}{$H+}
uses
SysUtils;
function Test(Test1: String): Boolean; overload;
begin
WriteLn(Test1);
//...
Result := True;
end;
function Test(var Test1: Integer): Boolean; overload;
begin
Result := Test(IntToStr(Test1));
end;
var
X: String = 'X';
Y: Integer = 12;
begin
Test(X);
Test(Y);
ReadLn;
end.
mark332 hat geschrieben:Jetzt brauche ich aber eine Möglichkeit, einen Char (egal ob 'Char' oder 'PWideChar') in einen String und andersherum konvertiere (um pfadvariablen in ShellExecute nutzen zu können...)
Code: Alles auswählen
var
c: Char;
p: PWideChar;
s: String;
begin
s := c; // Char -> String
s := p; // PWideChar -> String
p := PWideChar(s); // String -> PWideChar
c := s[1]; // erstes Zeichen des Strings -> Char
end.
Code: Alles auswählen
// InstalDir entspricht z.B.: 'C:\Programme\Minecraft Multilauncher' (Ein Ordner)
// (...)
if CheckBox_start.Checked=true then
begin
stDir:=PWideChar(InstalDir+'\Minecraft_Multilauncher.exe') // Füge die .exe dem Pfad hinzu;
ShowMessage(stDir); // Nur zur überprüfung, wird später nicht drinn' sein
ShellExecute(handle,'open',stDir,nil,nil,sw_shownormal); // starte den Pfad zur Datei (String geht hier nicht, er will bei Variablen einen oder mehrere Chars haben...)
end;
// (...)
mark332 hat geschrieben:Hat einer von euch vllcht eine Idee, wie ich das Problem lösen könnte ?
Die Zeichenkodierung ist UTF-8....Socke hat geschrieben:mark332 hat geschrieben:Hat einer von euch vllcht eine Idee, wie ich das Problem lösen könnte ?
- Zeichenkodierung des Quelltextes auf UTF-8 ändern (Rechtsklick in den Editor und dort suchen)
- http://wiki.freepascal.org/LCL_Unicode_Support/de#Widestrings_und_Ansistrings
Code: Alles auswählen
function run(prog, attrib, PUseDir:String; waitOnClose:Boolean):Boolean;
var
AProcess: TProcess;
begin
Result:= false;
if (prog <> ' ') and (prog <> '') then
begin
AProcess:= TProcess.create(nil);
AProcess.Executable:= prog;
if (attrib <> ' ') and (attrib <> '') then
begin
AProcess.Parameters.Add(attrib);
end;
if (PUseDir <> ' ') and (PUSeDir <> '') then
begin
AProcess.CurrentDirectory:=PUseDir;
end;
if (waitOnClose=true) then
begin
AProcess.Options:= AProcess.Options + [poWaitOnExit];
end;
AProcess.Execute;
Result:=true;
AProcess.Free;
end
else
begin
Result:=false;
end;
end;
Code: Alles auswählen
if (PUseDir <> ' ') and (PUSeDir <> '')