AGB  ·  Datenschutz  ·  Impressum  







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

Enter Button

Ein Thema von Frage95 · begonnen am 15. Nov 2013 · letzter Beitrag vom 15. Nov 2013
Antwort Antwort
Frage95
(Gast)

n/a Beiträge
 
#1

Enter Button

  Alt 15. Nov 2013, 09:37
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.
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Enter Button

  Alt 15. Nov 2013, 09:44
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.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Frage95
(Gast)

n/a Beiträge
 
#3

AW: Enter Button

  Alt 15. Nov 2013, 09:47
Ich habe eine TAdvGlassButton dort finde ich diese Eigenschaft leider nicht :/
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#4

AW: Enter Button

  Alt 15. Nov 2013, 09:48
Zitat:
Hallo ich möchte beim drücken des Enter Buttons bestimme Abläufe ausführen
Beim Drücken von Enter wird doch etwas Anderes ausgeführt, wie bei anderen Tasten.

Also die Funktion ist korrekt, laut der unzureichenden Informationen.

Zitat:
ich habe das schon versucht doch das Ergebnis ist nicht das gewünschte
Was hast du versucht und was passiert, aber vorallem was willst du eigentlich erreichen?

[edit]
Enter-Taste oder ein Button mit Enter?



Aufführlichere Fragen, mit allen "nötigen" Informationen sind Gold wert.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (15. Nov 2013 um 09:51 Uhr)
  Mit Zitat antworten Zitat
Frage95
(Gast)

n/a Beiträge
 
#5

AW: Enter Button

  Alt 15. Nov 2013, 09:51
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;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#6

AW: Enter Button

  Alt 15. Nov 2013, 09:54
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)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#7

AW: Enter Button

  Alt 15. Nov 2013, 09:55
Moin...

reden wir über:
A - ENTER Taste (auf der Tastatur)
oder
B - einen TAdvGlassButton wo ENTER draufsteht

  Mit Zitat antworten Zitat
Frage95
(Gast)

n/a Beiträge
 
#8

AW: Enter Button

  Alt 15. Nov 2013, 09:56
Okay ich habe mein Problem gelöst mit Hilfe eines PopupMenu.

Tortzdem Danke
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#9

AW: Enter Button

  Alt 15. Nov 2013, 10:08

Na siehste, haben wir mal wieder was hingepfuscht als das eigentliche Problem zu verstehen und zu korrigieren...
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#10

AW: Enter Button

  Alt 15. Nov 2013, 11:28
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 if EdNickname.Text = 'then wird nie ausgeführt,
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;
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  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 18:06 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