![]() |
Enter Button
Hallo ich möchte beim drücken des Enter Buttons bestimme Abläufe ausführen ich habe das schon versucht doch das Ergebnis ist nicht das gewünschte
Delphi-Quellcode:
procedure TfrmMainForm.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var TextFeld : string; begin TextFeld := EdNickname.Text; if TextFeld <> '' then begin if Key = VK_RETURN then begin ListShow; EdNickname.Enabled := false; EdNickname.Color := clGray; Serverstart; frmMainForm.BtnAusführen.Enabled := true; end else begin frmMainForm.BtnAusführen.Enabled := false; Showmessage ('Please enter your nickname!!'); frmMainForm.BtnAusführen.Enabled := true; end; end; end; end. |
AW: Enter Button
Wenn Du einen TButton hast, auf dem z.B. "Enter" steht, dann kannst du Im Objektinspektor ihm die Eigenschaft "Default" = True verpassen. Dadurch wird beim Drücken der Enter-Taste automatisch das Ereignis "OnClick" des Buttons ausgelöst.
|
AW: Enter Button
Ich habe eine TAdvGlassButton dort finde ich diese Eigenschaft leider nicht :/
|
AW: Enter Button
Zitat:
Also die Funktion ist korrekt, laut der unzureichenden Informationen. Zitat:
[edit] Enter-Taste oder ein Button mit Enter? Aufführlichere Fragen, mit allen "nötigen" Informationen sind Gold wert. |
AW: Enter Button
Also Wenn enter gedrückt wird sollen einige proceduren ausgeführt werden,
wenn ich dies teste, geht das nur beim 1 enter drücken wenn das feld leer ist also wenn die Felhler meldung angezeigt wird. Fülle ich das Edit Feld geschieht nichts und beim 2. mal enter drücken geschieht auch nichts. hier nochmal das Beispiel
Delphi-Quellcode:
procedure TfrmMainForm.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var TextFeld, IpField : string; begin TextFeld := EdNickname.Text; IpField := EdIp.Text; if (TextFeld <> '') and (IpField <> '') then begin if Key = VK_RETURN then begin ListShow; Serverstart; EdFields; frmMainForm.BtnAusführen.Enabled := false; end else if ListBox1.Count > 0 then begin frmMainForm.BtnAusführen.Enabled := false; end else if EdNickname.Text = '' then begin frmMainForm.BtnAusführen.Enabled := false; Showmessage ('Please enter your nickname!!'); Showmessage ('Please enter your IP- Adress!!'); frmMainForm.BtnAusführen.Enabled := true; end; end; end; |
AW: Enter Button
KeyPreview der Form auf True gesetzt?
Wenn bei ersten Mal zufällig der Fokus auf der Form liegt, bekommt sie natürlich diese Meldung. Wenn beim zweiten Mal aber der Fokus im Edit ist, dann wird das [Enter] nur von dem Edit verarbeitet, da es denkt das sei nur an sich gerichtet. PS: Den Debugger kennst du? (nachsehen ob das Event aufgerufen wird und was darin passiert) |
AW: Enter Button
Moin... 8-)
reden wir über: A - ENTER Taste (auf der Tastatur) oder B - einen TAdvGlassButton wo ENTER draufsteht :gruebel: |
AW: Enter Button
Okay ich habe mein Problem gelöst mit Hilfe eines PopupMenu.
Tortzdem Danke:thumb: |
AW: Enter Button
:roll:
Na siehste, haben wir mal wieder was hingepfuscht als das eigentliche Problem zu verstehen und zu korrigieren... |
AW: Enter Button
Hallo,
wenn ich die Procedure etwas anders formatiere, dann fällt mir auf, dass das Konstrukt nur läuft, wenn im Edit EdNickname und im Edit EdIp etwas drin steht. Ist eines von beiden leer, so wird die Procedure wieder beendet. Die Abfrage
Delphi-Quellcode:
wird nie ausgeführt,
if EdNickname.Text = '' then
da er da nur hinkommt, wenn im Edit was drin steht
Delphi-Quellcode:
procedure TfrmMainForm.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var TextFeld, IpField : string; begin TextFeld := EdNickname.Text; IpField := EdIp.Text; if (TextFeld <> '') and (IpField <> '') then begin if Key = VK_RETURN then begin ListShow; Serverstart; EdFields; frmMainForm.BtnAusführen.Enabled := false; end else if ListBox1.Count > 0 then begin frmMainForm.BtnAusführen.Enabled := false; end else if EdNickname.Text = '' then begin frmMainForm.BtnAusführen.Enabled := false; Showmessage ('Please enter your nickname!!'); Showmessage ('Please enter your IP- Adress!!'); frmMainForm.BtnAusführen.Enabled := true; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:57 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