Zitat:
Kann es sein, das die Typumwandlung "Result:=String(sText)" in der Methode ReceiveData zwar in Delphi, nicht jedoch in Freepascal klappt.
Kommt drauf an, ob die Compiler-Direktive {$longstrings} eingeschaltet ist.
Falls ja, müsste die Typkonvertierung eigentlich funzen.
Falls nein, solltest du die Zeile so ändern:
Result := AnsiString(sText);
[ADD]
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
WProc := SetWindowLong(
handle, gwl_WndProc, Integer(@NewWndProc));
end;
Änder das mal in
Delphi-Quellcode:
type TWProc =
function (H: hWnd; msg: LongWord; w, l: LongInt): Longint;
stdcall;
var WProc: TWProc;
procedure TForm1.FormCreate(Sender: TObject);
begin
WProc := TWProc(SetWindowLong(
handle, gwl_WndProc, Integer(@NewWndProc)));
end;
SetWindowLong liefert nämlich einen Longint zurück.