Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi edit-enter (https://www.delphipraxis.net/70820-edit-enter.html)

tom_po 5. Jun 2006 13:10


edit-enter
 
wollte eine Edit-Eingabe durch Enter bestätigen und damit automatisch button1 ausführen, geht aber nicht, warum?

Delphi-Quellcode:
procedure Tsuchform.Edit1Enter(Sender: TObject);
begin
button1.Click;
end;
wenn ich button1 normal anklicke, geht es, button1 macht dies:
Delphi-Quellcode:
procedure Tsuchform.Button1Click(Sender: TObject);
begin
modalresult:=1;
end;

Andreas L. 5. Jun 2006 13:13

Re: edit-enter
 
Das Enter-Ereignis ist nicht für die Taste Enter sondern für das "betreten" des Editfeldes. D.h. Enter wird ausgeführt sobald du in das Edit klickst. Willst du das eine Aktion bei der Entertaste passiert musst du das OnKeyPress (oder ähnlich)-Eregnis nehmen und dort die gedrückte Taste abfragen.

Helmi 5. Jun 2006 13:13

Re: edit-enter
 
Hallo,

Edit1Enter wird ausgeführt wenn du diesem Edit den Fokus gibst (z. B. reinklickst)

Wenn du das mit der Entertaste ausführen willst, dann musst du KeyPress verwenden:

Beispiel:
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  If Key = #13 then
    Button1.Click;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage('Hallo');
end;

Phistev 5. Jun 2006 13:15

Re: edit-enter
 
Oder benutze Delphi-Referenz durchsuchenTButton.Default

zer00 5. Jun 2006 13:15

Re: edit-enter
 
Hilft dir dieser Code?


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage('Hallo');
end;

procedure TForm1.Edit1Enter(Sender: TObject);
begin
Button1Click(self);
end;
grz zer00

StarFire 5. Jun 2006 13:30

Re: edit-enter
 
Immer wieder schön...

Wenn man über Tom_po und seine Fragen nur in einem Forum stolpern würde, könnte man es ja noch irgendwo hinnehmen... aber quer durch alle Delphi-Foren und dann mit einer konsequens von Ahnungslosigkeit und Desinteresse, das ist schon dummdreist.

Wenn wirst du ENDLICH versuchen, deinen Quellcode nicht nur zu KOPIEREN sondern auch zu KAPIEREN?

Und nach diesem Satz wissen wohl die meisten User, wer "StarFire" ist und ich kann mit meinem "Kürzel" unterschreiben.
Normalerweise halte ich mich aus diesem Forum raus.

DL
PS: nachdem ich mir jetzt die Beitrage von Tom_po hier mal angesehen habe, werde ich noch "stinkiger"

SirThornberry 5. Jun 2006 13:46

Re: edit-enter
 
@StarFire: Wenn du ein Problem mit jemand anderem hast kläre dies bitte per pn. Wenn du etwas zum Thema zu sagen hast kannst du gern weiter in diesem Thread posten, ansonsten halte dich bitte zurück und mach das Thema nicht "kaputt".

tom_po 5. Jun 2006 13:49

Re: edit-enter
 
danke helmi für deinen tip, das hatte ich schon probiert.
genau so wollte ich es...merci

mr47 5. Jun 2006 13:52

Re: edit-enter
 
Zitat:

Zitat von tom_po
danke helmi für deinen tip, das hatte ich schon probiert.
das ist aber nicht das, was ich wollte. mit key-press wird schon bei der ersten eingabe der button ausgeführt, will das aber erst nach der betätigung mit enter-taste, werde weiter suchen


Delphi-Quellcode:
If Key = #13 then
    Button1.Click;
DAmit aber nur mit der Taste mit dem ASCII-Code 13. Und das ist die Entertaste :roll:



mr47

tom_po 5. Jun 2006 13:54

Re: edit-enter
 
mr47, du hast recht, hatte zu schnell gepostet, danke, es geht
danke auch dir helmi

tom_po 5. Jun 2006 14:33

Re: edit-enter
 
habe durch Suchen jetzt noch das gefunden, das auch geht:

Delphi-Quellcode:
procedure Tsuchform.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
    //If Key = #13 then
    if key = Char(VK_Return) then
    Button1.Click;
end;
ist beides gleichwertig, applikationsbezogen?

Cyberbob 5. Jun 2006 15:31

Re: edit-enter
 
Ja. VK_Return ist nur eine Konstante, in der der Tastencode für die Returntaste gespeichert ist. Ist halt einfacher zu verstehen, wenn man RETURN liesst und nicht erst überlegen muss, was jetzt dieses 13 oder 27 oder so heisst.

tom_po 6. Jun 2006 08:25

Re: edit-enter
 
danke, cyberbob, leuchtet ein...

egon.kaschuba 19. Jun 2006 20:52

Re: edit-enter
 
:bouncing4:
Probiere mal folgendes aus
if key = #13 then self.perform(WM_NEXTDLGCTL,0,0);

Gruß egon.kaschuba
egon.kaschuba@ewetel.net

egon.kaschuba 19. Jun 2006 20:59

Re: edit-enter
 
:bouncing4:
procedure Tsuchform.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
If Key = #13 then self.perform(WM_NEXTDLGCTL,0,0);
.
.
. Weitere anweisungen
end;

Nochmals Gruß egon.kaschuba

mr47 21. Jun 2006 16:01

Re: edit-enter
 
Würdest Du noch dazu schreiben, was da jetzt anders ist, bzw. was das bewirkt..!?

egon.kaschuba 22. Jun 2006 12:41

Re: edit-enter
 
:hi:
Wissen ist Macht.

Findest du es nicht auch lästig,daß man sich NUR mit der Tabulatortaste
zwischen mehreren Textfeldern bewegen kann? Insbesondere in großen Eingabemasken ist die
Verwendung der Entertaste bez. der Cursortasten VIEL sinnvoller.

Delphi-Quellcode:
procedure TForm1.Edit14KeyPress(Sender: TObject; var Key: Char);
  begin
 if not (key in [#8,#46,#48..#57] ) then begin key:=#13 ; // Keine Ziffern eingeben
                                                           // Kundennummer suchen
     table1.indexName:='irenummer';
     table1.setkey;
     table1.FieldByName('nr').asstring:=Edit14.text;

     if not table1.gotokey then begin
     messagedlg('Rechnungdnummer'+' '+edit14.Text+' '+'nicht vorhanden !'
     ,mtinformation,[mbok],0);
     Edit14.text:=' ';
     end;
     edit14.Text:='';
    if key = #13 then self.perform(WM_NEXTDLGCTL,0,0); // Die Methode Perform sendet die Message
     end; end;                                         // WM_NEXTDLGCTL an das aktuelle Formular.
Ist das OK ? MR47

[edit=Admin]Code in Delphi-Tags gesetzt. Künftig bitte selber machen, danke. ;-) Mfg, Daniel[/edit]

mr47 22. Jun 2006 13:15

Re: edit-enter
 
Achso. Ich hatte bei deinem Beitrag davor nicht verstanden was anders ist, bzw. was das bringt.
Jetzt ist es klar...


mr47


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:12 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