![]() |
Automatisch ins Edit-Feld springen
Ich progge gerade an einem kleinen Game. Es ist ein reines Multiplayergame mit einem eigebauten Chat. Nur der User muss immer erst in das Edit-Feld klicken, um seine Nachricht eingeben zu können. Gibt es eine Möglichkeit das man das nicht muss?
Wer sich das Spiel angucken möchte, gibts auf ![]() MfG |
Re: Automatisch ins Edit-Feld springen
ohne es gesehen zu haben: Tastaturereignisse abfangen und Behandlungsroutinen (OnKeyDown/OnKeyPress/OnKeyUp) anlegen, wenn Taste gedrückt wird, die nicht zur Spielsteuerung dient, dann: ChatEdit.SetFocus.
gruß |
Re: Automatisch ins Edit-Feld springen
Schön und gut.
Habe zwei Probleme. 1. Der code muss definitiv in ins OnKeyPress-Ereignis (key muss vom Typ char sein und nicht vom Typ word wie es in OnKeyDown/Up ist. Aber in welches OnKeyPress muss es? Von meinem Formular funktioniert ja nicht. 2. Wenn ich es testweise in das meines Memos setze, dann wird das eingegebene Zeichen im Edit-Feld markiert, wird bei weiteren Tastenanschlägen gelöscht.
Delphi-Quellcode:
if key in [#33..#122] then
begin form1.Edit1.Text := form1.Edit1.Text + key; form1.Edit1.SetFocus; end; |
Re: Automatisch ins Edit-Feld springen
Moin Jörn,
wenn Du die Eigenschaft KeyPreview des Formulares auf true setzt kommt das KeyPress auch dort an. |
Re: Automatisch ins Edit-Feld springen
Danke habs eben auch gefunden, wenn auch nur durch dummen Zufall.
MfG und ne gute Nacht EDIT: man bin ich doof... hab trotzdem immer noch das Problem, das das Zeichen im Edit-Feld markiert wird...
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin if (key in [#33..#122]) and (edit1.Focused = false) then begin form1.Edit1.Text := form1.Edit1.Text + key; form1.Edit1.SetFocus; end; end; |
Re: Automatisch ins Edit-Feld springen
dann schau mal in der OH (solltest Du einfach öfter tun - Edit auf's Formular und anschließend F1 drücken) dort unter den Eigenschaften "SelStart" und "SelLenght"
Gruß |
Re: Automatisch ins Edit-Feld springen
Jo geile Sache...
falls es jemanden interessiert, hier das Ergebnis:
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin if (key in [#33..#122]) and (edit1.Focused = false) then with form1.Edit1 do begin Text := form1.Edit1.Text + key; SetFocus; SelStart := form1.Edit1.SelLength; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz