AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Automatisch ins Edit-Feld springen

Ein Thema von Jörn · begonnen am 7. Dez 2003 · letzter Beitrag vom 8. Dez 2003
Antwort Antwort
Jörn

Registriert seit: 5. Sep 2003
Ort: Helmstedt
312 Beiträge
 
#1

Automatisch ins Edit-Feld springen

  Alt 7. Dez 2003, 18:38
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 http://micha.p2board.de/forum/forum.php

MfG
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#2

Re: Automatisch ins Edit-Feld springen

  Alt 7. Dez 2003, 19:03
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ß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
Jörn

Registriert seit: 5. Sep 2003
Ort: Helmstedt
312 Beiträge
 
#3

Re: Automatisch ins Edit-Feld springen

  Alt 7. Dez 2003, 19:52
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;
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.107 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Automatisch ins Edit-Feld springen

  Alt 7. Dez 2003, 20:03
Moin Jörn,

wenn Du die Eigenschaft KeyPreview des Formulares auf true setzt kommt das KeyPress auch dort an.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Jörn

Registriert seit: 5. Sep 2003
Ort: Helmstedt
312 Beiträge
 
#5

Re: Automatisch ins Edit-Feld springen

  Alt 7. Dez 2003, 21:02
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;
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#6

Re: Automatisch ins Edit-Feld springen

  Alt 7. Dez 2003, 21:38
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ß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
Jörn

Registriert seit: 5. Sep 2003
Ort: Helmstedt
312 Beiträge
 
#7

Re: Automatisch ins Edit-Feld springen

  Alt 8. Dez 2003, 15:13
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;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz