Autor |
Beitrag |
cherry
      
Beiträge: 136
WinXP - Professional
RAD Studio 2009
|
Verfasst: Di 09.08.05 08:29
Hi
Ein TEdit sollte auf das Tastenereignis Enter reagieren.
Ich habs mit dem KeyUp ereignis gemacht, aber kann mir
bitte jmd den Virtual Key der Enter Taste übermitteln?!
 THX Moderiert von Tino: Topic aus VCL (Visual Component Library) verschoben am Di 09.08.2005 um 11:03
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Di 09.08.05 08:31
|
|
cherry 
      
Beiträge: 136
WinXP - Professional
RAD Studio 2009
|
Verfasst: Di 09.08.05 08:38
super sexy..
danke...
jetzt gibt es aber immer wenn ich enter drücke so einen
beschissnen piepston, kann ich den irgendwie ausschalten? 
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Di 09.08.05 08:41
|
|
cherry 
      
Beiträge: 136
WinXP - Professional
RAD Studio 2009
|
Verfasst: Di 09.08.05 08:45
Ich gebe eine Zahl in das Edit Feld ein, um bei Enter springt das
Query zum gewünschten Datensatz..
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| procedure TFrameStammdaten.Edit4KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); var SQL1 : String; begin If Key = vk_return then begin try SQL1 := ' SELECT * FROM v_wp_wirtschaftsbetrieb' +' WHERE betr_ID = ' + Edit4.text +' ORDER BY betr_name'; with Datamodule1.ADOQuery1_betr_view do begin close; SQL.Clear; SQL.Add(SQL1); open; Tag := 3; end; except MessageDlg('#Fehler 387!'+#13#10+#13#10+'Die angegebene ID existiert leider nicht (mehr)! ' , mtError, [mbOk], 0); end; end; end; |
.. aber es ist mir allgemein aufgefallen, dass dieser Ton erscheint, wenn man in
einem Editfeld Enter drückt. Egal ob eine Funktion hinterlegt ist oder nicht.
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Di 09.08.05 08:48
Bist du dir sicher, dass der Piepser nicht von dem MessageDlg kommt? Ansonsten, wieso nimmst du KeyUp und nicht OnKeyPress? Das ist eher für sowas gedacht, wie du's vorhast. Probier's mal damit. 
|
|
cherry 
      
Beiträge: 136
WinXP - Professional
RAD Studio 2009
|
Verfasst: Di 09.08.05 08:53
Da passiert genau dasselbe!
Und übrigens wird der MessageDlg nur ausgeführt bei einer Exception,
zum Beispiel wenn die ID nicht gefunden werden kann!
Danke trotzdem
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Di 09.08.05 09:00
cherry hat folgendes geschrieben: | Da passiert genau dasselbe! |
Mhmm... Okay...
cherry hat folgendes geschrieben: | Und übrigens wird der MessageDlg nur ausgeführt bei einer Exception, zum Beispiel wenn die ID nicht gefunden werden kann! |
Weiß ich, weiß ich. Soviel erkenn' ich dann doch noch.  Aber hätte ja sein können, dass du das Programm bei dir zu Hause testest und da keine Datenbank hast und deshalb immer die Exception eintritt oder was weiß ich was.
cherry hat folgendes geschrieben: | Danke trotzdem |
Nicht so schnell aufgeben. Was auf jeden Fall gehen sollte, ist, wenn du einfach direkt hinter das Edit einen Button setzt und dem den Code aus KeyPress ins OnClick gibst. Dann setzt du noch Default vom Button auf True. 
|
|
cherry 
      
Beiträge: 136
WinXP - Professional
RAD Studio 2009
|
Verfasst: Di 09.08.05 09:11
Das wäre eine Möglichkeit... die ich leider ausschliessen muss.
Habe einen Prontscreen von meinem Programm mitgeschickt.
Dann erkennt man, dass sich hinter der Betriebsnummer ein Button schlecht machen
würde! 
Einloggen, um Attachments anzusehen!
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Di 09.08.05 09:29
Also wenn dir der Piepser so wichtig ist, dann kannste dir ja auch den Button auf dein Formular setzen und ihm dann bei TForm.Create die Eigenschaft Width oder Height auf 0 setzen. Funktioniert noch, hab's ausprobiert.
So wie's im Anhang ist, sieht's dann zur Entwicklungszeit aus. Startest du das Programm ist er weg. 
Einloggen, um Attachments anzusehen!
|
|
Lannes
      
Beiträge: 2352
Erhaltene Danke: 4
Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
|
Verfasst: Di 09.08.05 09:35
Hallo,
cherry hat folgendes geschrieben: | ...jetzt gibt es aber immer wenn ich enter drücke so einen
beschissnen piepston, kann ich den irgendwie ausschalten?  |
der Ton wird ausgegeben weil das Editfeld den Zeilenumbruch durch die Enter-Taste nicht erzeugen kann, daher der Warnton -ist Windows-Standard-
in deinem Code wird VK_RETURN ausgewertet, aber auch an Windows weitergereicht.
Das musst Du unterbinden:
Delphi-Quelltext 1: 2: 3: 4: 5:
| If Key = vk_return then begin key := 0; try SQL1 := ' SELECT * FROM v_wp_wirtschaftsbetrieb' |
_________________ MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
|
|
cherry 
      
Beiträge: 136
WinXP - Professional
RAD Studio 2009
|
Verfasst: Di 09.08.05 10:15
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Di 09.08.05 10:19
Bist du jetzt im OnKeyPress oder im OnKeyUP drin?! 
|
|
cherry 
      
Beiträge: 136
WinXP - Professional
RAD Studio 2009
|
Verfasst: Di 09.08.05 10:22
Im OnKeyDown natürlich, habe aber auch OnKeyUp versucht.
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Di 09.08.05 10:25
cherry hat folgendes geschrieben: | Im OnKeyDown natürlich, habe aber auch OnKeyUp versucht. |
Im OnKeyDown solltest du's mal so versuchen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| If Key = vk_return then begin key := #0; try SQL1 := ' SELECT * FROM v_wp_wirtschaftsbetrieb' [...] |
Bei mir funktioniert das... 
|
|
cherry 
      
Beiträge: 136
WinXP - Professional
RAD Studio 2009
|
Verfasst: Di 09.08.05 10:33
WeBsPaCe hat folgendes geschrieben: | Bei mir funktioniert das... |
Das kann ich dir fast nicht abkaufen, bei mir gibt es einen Syntaxfehler aus!
[Fehler] FStammdaten.pas(730): Inkompatible Typen: 'Word' und 'Char'
Ist ja auch klar eigentlich, denn key is ja vom typ Word!?
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Di 09.08.05 10:36
Im OnKeyPress eines TEdit nicht.
Delphi-Quelltext 1:
| procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); |
|
|
CK_CK
      
Beiträge: 140
Win 2000, Win XP Prof
Delphi 2006 Enterprise
|
Verfasst: Di 09.08.05 10:37
Was haltet ihr denn dann von: key := Ord(#0);
CK_CK
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Di 09.08.05 10:40
lol...
Key erwartet ein Char als Wert. Du übergibst ihm aber ein Integer...
Zitat: | [Error] Unit1.pas( 28 ): Incompatible types: 'Char' and 'Integer' |
Zuletzt bearbeitet von WeBsPaCe am Di 09.08.05 11:14, insgesamt 2-mal bearbeitet
|
|
cherry 
      
Beiträge: 136
WinXP - Professional
RAD Studio 2009
|
Verfasst: Di 09.08.05 10:48
|
|