Einzelnen Beitrag anzeigen

xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#4

Re: Meinungen & Erfahrungen zur Delphi & C++ Builder

  Alt 13. Sep 2008, 00:24
Hallo,
Zitat von RWarnecke:
Delphi-Quellcode:
procedure ShellFileOperation(fromFile, toFile: String; Flags: Integer);
var
  shellinfo: TSHFileOpStructA;
begin
  with shellinfo do
  begin
    wnd := Application.Handle;
    wFunc := Flags;
    pFrom := PAnsiChar(fromFile);
    pTo := PAnsiChar(toFile);
  end;
  SHFileOperationA(shellinfo);
end;
Das ist natürlich falsch. Du übergibst einen Pointer auf einen WideString, sagst aber, es wäre ein AnsiString. Richtig ist:
Delphi-Quellcode:
procedure ShellFileOperation(fromFile, toFile: String; Flags: Integer);
var
  shellinfo: TSHFileOpStructW; // <-----
begin
  with shellinfo do
  begin
    wnd := Application.Handle;
    wFunc := Flags;
    pFrom := PChar(fromFile);
    pTo := PChar(toFile);
  end;
  SHFileOperation(shellinfo);
end;
Wenn schon Unicode, dann auch richtig.
Ich würde mich auch nicht wundern, wenn einfach TSHFileOpStruct gehen würde, das jetzt auf die Unicode-Version zeigt. Dann könnte man immer den selben Code nehmen, der eben ja nach Compiler als Ansi oder Unicode compiliert wird.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat