ok, damit konnte ich auf jedenfall jetzt schon ne ganze Menge reißen, wenn es Interessiert:
Code:
procedure TForm1.Edit1Exit(Sender: TObject);
begin
with Sender as TCustomEdit do
begin
// Die aktuelle Auswahlposition in der nicht verwendeten Eigenschaft Tag speichern
Tag := SelStart;
SetFocus;
end;
end;
procedure TForm1.Edit1Enter(Sender: TObject);
begin
with Sender as TCustomEdit do
begin
// Die aktuelle Auswahlposition aus der sonst nicht verwendeten Eigenschaft Tag lesen
SelStart := Tag;
SelLength := 0;
end;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then begin {#13 = Enter}
Key := #0;
PostMessage(
Handle, WM_NextDlgCtl, 0, 0);
end;
end;
allerdings habe ich immernoch ein Problem, denn mir ist gestern nicht aufgefallen, dass man das Edit-Feld ja jetzt _garnicht_mehr verlassen kann ... weder mit Enter (also in diesem Fall über PostMessage) noch mit der Maus.
So spontan fällt mir auch nicht ein wie ich das mit der Maus hinbekommen sollte. Für die Enter-Taste fällt mir spontan so ein übler Hack ein, also z.B. OnKeyPress den DragCurser von crDrag auf crNormal setzen (und bei allen anderen Tasten auf crDrag) und den Inhalt von OnExit nur ausführen lassen, wenn der DragCurser auf crNormal gesetzt ist (ja das vergewaltigt die Bedeutung von DragCurser, aber solange ich kein Drag&Drop realisieren will...). Hat hier vielleicht wer eine elegantere Idee?
Lg Lars