![]() |
Navigieren zwischen den Edit-Feldern
Hallo Delphianer ...
Ich habe ein DB Proggi geschrieben, da ich nicht permanent die Mouse bei der rechten Hand halten möchte in der Dateneingabe, versuche ich seit längerem ein OnKeyPress Ereignis zu schreiben.
Delphi-Quellcode:
Mit diesen Code im OnKeyPress Ereignis, übergebe ich den Focus der TabTaste an die Entertaste. So dass ich beim rücken in das nächste Feld die Return - Taste benutzen kann. [OnKeyPress] - (KeyPreview:=True;] if key = #13 {Return} then begin Perform(WM_NEXTDLGCTL, 0, 0); Key := #0; end; Jetzt kommt es vor das ich mich verschrieben habe im vorigem Feld z.B. nun möchte ich via Pfeil_hoch Taste wieder ins vorige Feld. Wie kann ich das bewerkstelligen??? Mit VK_Down & VK_UP bzw #38, #40 erreiche ich nichts. Vieleicht kann mir einer sagen, wo ich welchen Code eintippe. [z.B. OpjectIn. - OnKeyDown - Code] Vielen Dank an alle zukünftige Poster CH4.5 [edit=Sharky]Delphi-Tags richtig gesetzt. Mfg, Sharky[/edit] |
Re: Navigieren zwischen den Edit-Feldern
Delphi-Quellcode:
Ein onkeypress-Ereigniss gibts doch schon, das musste doch nicht extra schreiben :?:
if key=38 then edit1.setfocus;
[edit] jetzt hatte die Delphipraxissoftware ein Bug :?: Ich habe den obigen Artikel bearbeitet und dann kommt ein roter kasten und es wird mein Artikel angezeigt, dass der neu ist... Ich klick auf absenden und der Artikel is jetzt doppelt... [/edit] |
Re: Navigieren zwischen den Edit-Feldern
Zitat:
Zitat:
Mußte ich bei der Returntaste aber auch erst schreiben, da der Standartfocus zum wechseln in das nächste Feld auf TAB liegt. Trotzdem Danke für die Antwort CH4.5 |
Re: Navigieren zwischen den Edit-Feldern
Hai CH4.5
ersteinmal: "Herzlich Willkommen in der Delphi-PRAXiS" :hi: Wie Du ja schon erkannt hast kannst Du mit
Code:
zum nächsten Objekt in der Tabfolge springen.
Perform(WM_NEXTDLGCTL, [b]0[/b], 0)
Mit diesem Aufruf
Code:
kommst Du zu dem vorherigen Objekt.
Perform(WM_NEXTDLGCTL, [b]1[/b], 0)
|
Re: Navigieren zwischen den Edit-Feldern
Vielen Dank für die Begrüßung...
Habe jetzt folgenden Code im OnKeyPress versucht ...
Delphi-Quellcode:
Wenn ich noch if key = #38 then begin Perform(WM_NEXTDLGCTL, 1, 0); end;
Delphi-Quellcode:
hinzufüge geht gar nichts mehr.
Key = #0
Leider ergab es nicht den gewünschten Effekt. Vieleicht schreibe ich den Code an die falsche Stelle. Vieleicht sollte ich erwähnen das ich in DBEdits navigieren möchte. |
Re: Navigieren zwischen den Edit-Feldern
Hai Chauffeur,
versuche es mal mit diesem Code im ![]()
Delphi-Quellcode:
Als erstes prüfe ich ob das aktuelle Control ein DBEdit ist. Nur dann soll die "sondernavigation" arbeiten.
procedure TForm1.FormKeyDown(Sender: TObject; var Key: word; Shift: TShiftState);
var Mgs: TMsg; begin if (ActiveControl is TDBEdit) then begin if (Key = VK_RETURN) then begin Key := 0; Perform(WM_NEXTDLGCTL, 0, 0); PeekMessage(Mgs, 0, WM_CHAR, WM_CHAR, PM_REMOVE); // Beep end; if (Key = VK_UP) then begin Perform(WM_NEXTDLGCTL, 1, 0) end; end; end; Mit dem PeekMessage "entferne" ich den letzen Tastendruck um beim drücken von Enter das Beep zu unterbinden. |
Re: Navigieren zwischen den Edit-Feldern
Ich bedanke mich, jetzt kommen die Erfolge wie ich sie mir wünsche. War eine schwere Geburt, aber es hat sich gelohnt. Jetzt muss ich das nur noch auf die DBEdits umschreiben.
Vielen Dank. :) CH4.5 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:32 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 by Thomas Breitkreuz