Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - AnsiString und Char
Grafix - Di 22.03.11 13:17
Titel: AnsiString und Char
Hallo,
ich habe folgende Kopierfunktion im Internet gefunden:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| function DoCopy(aOperation: FILEOP_FLAGS; aFrom, aTo: AnsiString; Flags: FILEOP_FLAGS): Integer; var FromPath, ToPath: AnsiString; SHFileOpStruct: TSHFileOpStruct; begin FromPath := aFrom + #0#0; ToPath := aTo + #0#0; with SHFileOpStruct do begin Wnd := 0; wFunc := aOperation; pFrom := PAnsiChar(FromPath); if ToPath <> '' then begin pTo := PAnsiChar(ToPath) end else begin pTo := nil; end; fFlags := Flags; end; Result := SHFileOperationA(SHFileOpStruct); end; |
Hier gibt er mir den Fehler in der Zeile
pFrom := PAnsiChar(FromPath);
Inkompatible Typen: AnsiChar und Char. Ist es weil zu dem AnsiChar der Anhang + #0#0 hinzukam? Wie kann ich das umgehn?
Danke schon mal
Chris
jaenicke - Di 22.03.11 14:46
Nein, der Fehler liegt hier:
Delphi-Quelltext
1: 2: 3: 4: 5:
| function DoCopy(aOperation: FILEOP_FLAGS; aFrom, aTo: AnsiString; Flags: FILEOP_FLAGS): Integer; var FromPath, ToPath: AnsiString; SHFileOpStruct: TSHFileOpStruct; |
Da du die Ansi-Variante statt der Unicodevariante benutzt und Delphi 2009 oder höher nutzt, muss das TSHFileOpStructA heißen.
Nimm besser die Unicodevariante...
Grafix - Di 22.03.11 14:54
Das hat schonmal funktioniert, danke dafür. Worin liegt der Nachteil der Ansi Variante? Die Unicode Variante wäre dass ich alles als Strings usw. deklariere, anstatt PAnsiString oder?
Dazu noch eine weitere Frage, ich möchte, dass der Kopierfortschritt in einer Progressbar auf meinem Form dargestellt wird. Wie kann ich das erreichen?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| if Beide_PC_online = True then begin ShowMessage('Beide PCs online, Synchronisierung beginnen'); for i := 0 to 100 - 1 do begin Progressbar.Position := Progressbar.Position +1; end; end;
DoCopy(FO_COPY, 'C:\Test\', 'C:\TestTest\', 0); |
irgendwie muss ich die Progressbar in die Funktion mit implementieren, ist das ein Lösungsansatz oder wie kann man das realisieren?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!