Hallo Rolf,
habe erst jetzt mal eine ruhige Minute gefunden, um nach deinem Problem zu sehen.
ich würde deine Code ein wenig umbauen, etwa so:
Delphi-Quellcode:
type
TForm16 = class...
...
public // oder wo es passender ist
EditedTxt : string;
...
end;
procedure TForm16.OnAppMsg(var Msg: TMsg; var Handled: Boolean);
begin
Handled := False;
if Msg.message = WM_KEYDOWN then
begin
if (tv1.IsEditing) then
begin
if (Msg.wParam in [VK_A..VK_Z]) then // -> nimm hier alle deine gültigen Zeichen
EditedTxt := EditedTxt + chr(Msg.wParam)
else
if (Msg.wParam = VK_RETURN) then
begin
tv1.Selected.EditText := EditedTxt;
EditedTxt := '';
end;
Handled := True;
end;
end;
end;
So ungefähr, ich hab's nicht getestet, sondern nur mal schnell runtergetippt.
Denn auch der eingegebene Text geht ja Zeichen für Zeichen durch dieses globale Key-Event.
Versuche einfach mal auf dieser Basis weiterzuforschen.