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 In nächstes Feld weiterspringen bei festgelegter Länge? (https://www.delphipraxis.net/26539-naechstes-feld-weiterspringen-bei-festgelegter-laenge.html)

HaCkAttaCk2001 24. Jul 2004 23:11


In nächstes Feld weiterspringen bei festgelegter Länge?
 
Hi @ all.

Ich habe ein Problem mit einem MaskEdit. Dieses Edit erlaubt es, genau 2 Zahlen einzutragen (es müssen 2 sein). Ich möchte nun, dass der Cursor ins nächste MaskEdit springt, wenn beide Zahlen eingetragen sind.

mit:

Delphi-Quellcode:
if Length(MaskEdit1.Text) = 2 then MaskEdit2.Focused;
im OnChange-Ereignis des MaskEdit1 funktioniert dies aber nicht. Warum?


Wäre über 'ne Lösung sehr dankbar.


C ya.

S2B 24. Jul 2004 23:13

Re: In nächstes Feld weiterspringen bei festgelegter Länge?
 
Ich würde
Delphi-Quellcode:
MaskEdit2.SetFocus;
nehmen! :wink:

HaCkAttaCk2001 24. Jul 2004 23:16

Re: In nächstes Feld weiterspringen bei festgelegter Länge?
 
Hi.

Es geht! Du bist genial :D . Die schnellste Lösung eines Problems, die ich je hatte! :D :dp:

Für was gibts denn dann eigentlich "Focused"?!

C ya.

S2B 24. Jul 2004 23:18

Re: In nächstes Feld weiterspringen bei festgelegter Länge?
 
Damit liest man imho den aktuellen Status aus, also ob das Feld den Focus hat oder nicht! :wink:

HaCkAttaCk2001 24. Jul 2004 23:22

Re: In nächstes Feld weiterspringen bei festgelegter Länge?
 
Hi.

Das Delphi da nicht gemeckert hat... war ja keine Zuweisung da. Na egal, ich verdreh halt immer alles ^^.


THX.


*close pls* :D .

Sharky 25. Jul 2004 06:44

Re: In nächstes Feld weiterspringen bei festgelegter Länge?
 
Hai,

wenn Du mehrere MaskEdits hast kannst Du das auch noch allgemeiner machen. Einfach allen MaskEdits die selbe OnChange Procedure zuweisen. Diese sieht dann so aus:
Delphi-Quellcode:
procedure TForm1.MaskEdit1Change(Sender: TObject);
begin
  if (Length ((Sender As TMaskEdit).Text) = 2) then
  begin
    Perform(WM_NEXTDLGCTL,0,0); // Focus auf das nächste Obejct
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 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-2025 by Thomas Breitkreuz