Einzelnen Beitrag anzeigen

digleu

Registriert seit: 28. Okt 2003
Ort: Alfter, das dach der Welt
16 Beiträge
 
#7

Re: Tab im Edit unterdrücken

  Alt 25. Aug 2005, 13:01
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
  Mit Zitat antworten Zitat