Am Einfachsten gleich direkt in den WideString reinschreiben.
Delphi-Quellcode:
function ListGetText(hList: HWND; Item: Integer): WideString;
begin
if Item > 0
then
dec(Item);
SetLength(Result, SendMessage(hList, LB_GETTEXTLEN, Item, 0));
SendMessage(hList, LB_GETTEXT, Item, LPARAM(Result));
end;
Kein Memory allozieren ?
Und Freigeben?
Denn AllocMem benötigt einen pointer.
PS:
Und damit wäre es auch nicht getan denn CopyFile erwartet ein PWideChar!
Delphi-Quellcode:
Img := SKAERO_CreateImageFromFile(ListGetText(hList, ListItem));
if Img <> 0 then
begin
hImg := cardinal(SKAERO_GetProperty(WinHandle, FORM_Center));
SKAERO_DisposeImage(hImg);
CopyFile(ListGetText(hList, ListItem), PWideChar(
SKAERO_CENTERFORM), False);
SKAERO_SetProperty(WinHandle, FORM_Center, Img);
ResizeWindow(WinHandle, 1);
end;
Das war auch der Grund das ich über PWideChar gegangen bin
um das unnötige hin und her konvertieren zu vermeiden.
Der Fehler ist auf jedenfall weg ..
Danke.
gruss