AGB  ·  Datenschutz  ·  Impressum  







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

Navigieren zwischen den Edit-Feldern

Ein Thema von Chauffeur4.5 · begonnen am 5. Nov 2005 · letzter Beitrag vom 5. Nov 2005
Antwort Antwort
Chauffeur4.5

Registriert seit: 5. Nov 2005
4 Beiträge
 
#1

Navigieren zwischen den Edit-Feldern

  Alt 5. Nov 2005, 14:11
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:

[OnKeyPress] - (KeyPreview:=True;]

   if key = #13 {Return} then
   begin
    Perform(WM_NEXTDLGCTL, 0, 0);
    Key := #0;
   end;
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.
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]
Wer nicht anfängt, wird nicht fertig.
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Navigieren zwischen den Edit-Feldern

  Alt 5. Nov 2005, 14:21
if key=38 then edit1.setfocus; Ein onkeypress-Ereigniss gibts doch schon, das musste doch nicht extra schreiben

[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]
Michael Enßlin
  Mit Zitat antworten Zitat
Chauffeur4.5

Registriert seit: 5. Nov 2005
4 Beiträge
 
#3

Re: Navigieren zwischen den Edit-Feldern

  Alt 5. Nov 2005, 15:07
Zitat:
if key=38 then edit1.setfocus;
Bei diesem Bsp. gebe ich dem edit1 den Focus, doch weiss das prog doch nicht ob ich gerade bei edit2 bin und auf edit1 zurück will. ich könnte ja bereits bei edit23 sein und will zurück auf edit22 dann ev. auf edit21 usw.!

Zitat:
Ein onkeypress-Ereigniss gibts doch schon, das musste doch nicht extra schreiben

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
Wer nicht anfängt, wird nicht fertig.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Navigieren zwischen den Edit-Feldern

  Alt 5. Nov 2005, 15:21
Hai CH4.5

ersteinmal: "Herzlich Willkommen in der Delphi-PRAXiS"

Wie Du ja schon erkannt hast kannst Du mit
Code:
Perform(WM_NEXTDLGCTL, [b]0[/b], 0)
zum nächsten Objekt in der Tabfolge springen.
Mit diesem Aufruf
Code:
Perform(WM_NEXTDLGCTL, [b]1[/b], 0)
kommst Du zu dem vorherigen Objekt.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Chauffeur4.5

Registriert seit: 5. Nov 2005
4 Beiträge
 
#5

Re: Navigieren zwischen den Edit-Feldern

  Alt 5. Nov 2005, 16:20
Vielen Dank für die Begrüßung...

Habe jetzt folgenden Code im OnKeyPress versucht ...

Delphi-Quellcode:
   
 if key = #38 then
   begin
    Perform(WM_NEXTDLGCTL, 1, 0);
   end;
Wenn ich noch  Key = #0 hinzufüge geht gar nichts mehr.

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.
Wer nicht anfängt, wird nicht fertig.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Navigieren zwischen den Edit-Feldern

  Alt 5. Nov 2005, 16:36
Hai Chauffeur,

versuche es mal mit diesem Code im Delphi-Referenz durchsuchenOnKeyDown der Form.
Delphi-Quellcode:
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;
Als erstes prüfe ich ob das aktuelle Control ein DBEdit ist. Nur dann soll die "sondernavigation" arbeiten.
Mit dem PeekMessage "entferne" ich den letzen Tastendruck um beim drücken von Enter das Beep zu unterbinden.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Chauffeur4.5

Registriert seit: 5. Nov 2005
4 Beiträge
 
#7

Re: Navigieren zwischen den Edit-Feldern

  Alt 5. Nov 2005, 16:52
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
Wer nicht anfängt, wird nicht fertig.
  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 06:20 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