Ok hat sich erledigt..
Hatte wirklich was am Kopf.
Wenn man die Messagen einer gesubclassed Edit nicht weiterleitet kann das nicht gehen.
implementation
Delphi-Quellcode:
{ TSkinEdit }
procedure TSkinEdit.ClientWndProc(
var Message: TMessage);
begin
with Message do
begin
case Msg
of
WM_ERASEBKGND:
Result := EditProc(
Handle, integer(Msg),
Message.WParam,
Message.LParam);
WM_PAINT:
Result := EditProc(
Handle, integer(Msg),
Message.WParam,
Message.LParam);
WM_GETTEXT:
Result := EditProc(
Handle, integer(Msg),
Message.WParam,
Message.LParam);
WM_GETTEXTLENGTH:
Result := EditProc(
Handle, integer(Msg),
Message.WParam,
Message.LParam);
end;
end;
end;
Danke für deine Hilfe das hat mich erst darauf gebracht.
Muss jetzt noch schaun wie ich die Eingabe von Hand tätigen muss.
Also dieser abgewandelte Schnipsel geht so schon mit 2010!
Delphi-Quellcode:
function GetWindowText(WinHandle: HWND): PWideChar;
var
TextLength: Integer;
Text: PWideChar;
begin
Result := '';
if wnd = 0 then
Exit;
TextLength := SendMessageW(WinHandle, WM_GETTEXTLENGTH, 0, 0);
if TextLength <> 0 then
begin
GetMem(Text, sizeof(Text) + 1);
SendMessageW(wnd, WM_GETTEXT, TextLength + 1, Integer(Text));
Result := Text;
FreeMem(Text);
end;
end;
Zitat:
sollte es also PChar heißen
PChar wird automatisch nach PWideChar gecastet warum dann nicht direkt?
gruss