AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Auf RETURN-drücken im Edit reagieren
Thema durchsuchen
Ansicht
Themen-Optionen

Auf RETURN-drücken im Edit reagieren

Ein Thema von SleepyMaster · begonnen am 22. Jan 2005 · letzter Beitrag vom 22. Jan 2005
Antwort Antwort
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#1

Auf RETURN-drücken im Edit reagieren

  Alt 22. Jan 2005, 18:48
Hi ihrs...

weiß jemand von euch was die WM ist, die gesendet wird, wenn in einem Edit eine Taste gedrückt wird?
(Ich will anstelle dem "DING" welches man beim drücken der enter-taste hört, eine andere Aktion durchführen)

Vielen Dank...
  Mit Zitat antworten Zitat
kill -9
(Gast)

n/a Beiträge
 
#2

Re: Auf RETURN-drücken im Edit reagieren

  Alt 22. Jan 2005, 18:53
Beim Edit-OnKeyDown-Ereignis:
if key = 13 then {13 ist der ASCII für Return...}
begin
//Aktion die du durchführen willst
end;

(damit bekommst du dann "Pling"
leider auch nicht weg )
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#3

Re: Auf RETURN-drücken im Edit reagieren

  Alt 22. Jan 2005, 18:55
Es funktioniert schon

Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then Key := #0;
end;
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Auf RETURN-drücken im Edit reagieren

  Alt 22. Jan 2005, 18:57
Hi,

Du kannst auch das OnKeyPress Ereignis des Edits verwenden.

Das sähe dann z.B. so aus

Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    // Aktion ...
    Key := #0;
  end;
end;
Wobei das Key := #0; dafür sorgt, dass kein Beep-Ton beim Drücken der Enter-Taste erzeugt wird.
Und, wie bereits erwähnt, steht das #13 für das ASCII Zeichen Nr. 13 (= CR = Carriage Return) und wird gesendet, falls die Enter-Taste gedrückt wurde.

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#5

Re: Auf RETURN-drücken im Edit reagieren

  Alt 22. Jan 2005, 18:58
Ich suchte eigendlich eine NonVCL-Lösung (WinAPI)...

Weiß dafür jemand eine Lösung?
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Auf RETURN-drücken im Edit reagieren

  Alt 22. Jan 2005, 19:02
Hi,

das müsste dann die WM_CHAR Message sein, auf die Du reagieren musst.

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Auf RETURN-drücken im Edit reagieren

  Alt 22. Jan 2005, 19:04
MSDN-Library durchsuchenWM_KEYDOWN für die virtuellen Tastaturcodes bzw WM_CHAR wenn ein Zeichen eingetippt wird, und dann das Edit subclassen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#8

Re: Auf RETURN-drücken im Edit reagieren

  Alt 22. Jan 2005, 19:09
Genau das hatte ich mir zuerst auch gedacht...

aber wenn das Edit oder ein anderes Control breits den Focus hat dann passiert bei einer Eingabe nichts mehr...
  Mit Zitat antworten Zitat
TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Auf RETURN-drücken im Edit reagieren

  Alt 22. Jan 2005, 19:57
also der Code unten tut's bei mir jedenfalls. Damit unterbleibt einmal dieses "DING" und andere Aktionen könntest du da ebenfalls noch auszuführen.


Delphi-Quellcode:
var
  Form1: TForm1;
  OldWndProc : cardinal;

implementation

{$R *.dfm}


function Edit1WndProc(hWnd1: hWnd; uMsg: UInt; wP: WParam; lP : LParam) : LResult; stdcall;
begin
  case uMsg of
    // ...
    wm_Char : if wP = 13 then begin
                wp := 0;
                // und eine sonstige Aktion!
              end;
  end; { of case }
  Result := CallWindowProc(Pointer(OldWndProc), hWnd1, uMsg, wP, lP);
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
  OldWndProc := SetWindowLong(TWinControl(Edit1).Handle,GWL_WndProc,integer(@Edit1WndProc));
end;
...oder wie meintest du das genauer mit dem Focus?
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#10

Re: Auf RETURN-drücken im Edit reagieren

  Alt 22. Jan 2005, 21:25
So gehts tatsächlich...

vielen Dank...

ich dachte man könnte das alles in der WndProc der Form erledigen und wusste nicht, dass man noch eine eigene fürs edit erstellen muss/kann.

thx...
  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 07:33 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