aus der zwischenablage holen und editfenster wechseln?
Da dies mein erster Beitrag ist hallo erstmal
ich bin ein ziemlicher neuling im delphibereich und entschuldige mich hiermit für evtl. dumme fragen etc. ;) ich komme direkt aus einem forum das damit wirbt dass es bei fragen und mitarbeit immer offen ist, mir bis jetzt aber außer unverschämten antworten nix beigebracht hat.. ich hoffe das ist hier nicht so so zu meinen fragen wie kann ich eine zahl(ip) aus der zwischenablage holen und sie in dreierblöcken auf 4 editfelder aufteilen? und gibt es eine möglichkeit, dass wenn ein editfeld mit drei stellen ausgefüllt ist ins nächste gewchselt wird? bitte seid gnädig zu mir und verwendet nicht so viele fachwörter bin wiegesagt ein ziemlicher noob in dem bereich ;) MfG |
Re: aus der zwischenablage holen und editfenster wechseln?
herzlich willkommen :party:
also die zwischenablage erreichst du über clipboard:
Delphi-Quellcode:
jetzt musst du nur noch die zahlen rausfiltern, such am besten mit Pos bzw PosEx nach dem Punkt der die trennt.
uses Clipbrd;
showmessage(Clipboard.AsText); und mit dem edit wechseln: überprüfe im onChange bzw onKeyPress die anzahl der buchstaben (length(edit1.text)) und spring dann zum nächsten edit (edit2.setFocus) |
Re: aus der zwischenablage holen und editfenster wechseln?
Hallo
Du könntest eventuell auch anstelle von 4 editfeldern eventuell ein Maskedit verwenden mit einer Maske für IP-Werte zb "999.999.999.999" |
Re: aus der zwischenablage holen und editfenster wechseln?
hallo
danke erstrmal für die antworten^^ kannst du mir mal ein beispiel nennen für das lengh? also (3(Edit1.Text)) (3 ist die stelle)? MfG |
Re: aus der zwischenablage holen und editfenster wechseln?
length ist eine Funktion und liefert die länge zurück, also einfach:
Delphi-Quellcode:
var
länge: Integer; // ... länge := length(edit1.text); showmessage(Format('Der String ist %d Zeichen lang!', [länge])); |
Re: aus der zwischenablage holen und editfenster wechseln?
ähm ok das funktioniert schon fast^^
ich habe laenge mit 3 definiert aber es springt direkt nach einer zahl ins andere edit.. |
Re: aus der zwischenablage holen und editfenster wechseln?
zeig mal was wie deine procedure aussieht dann können wir dir vllt helfen :wink:
|
Re: aus der zwischenablage holen und editfenster wechseln?
Delphi-Quellcode:
da.. ist bestimmt ein saublöder fehler drin^^
procedure TForm1.Edit1Change(Sender: TObject);
begin Laenge:=3; Laenge:=length(Edit1.Text); Edit2.SetFocus; end; Laeunge ist oben mit integer definiert |
Re: aus der zwischenablage holen und editfenster wechseln?
Zitat:
1.) ist laenge eine globale Variable? Regel: so lokal wie möglich deklarieren 2.) diese prozedure wird immer ausgeführt wenn ein sich der inhalt des edits ändert. also bei jedem tastendruck den man macht. und zwar wird laenge zuerst 3 zugewiesen, dann gleich dannach die länge vom edit.string -> warum zuesrt 3? bringt überhaupt nÜx und dann wird das fokus verändert... du willst ja nur verändern wenn die länge größergleich 3 ist. also ganz einfach:
Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
begin if length(Edit1.Text) >= 3 then Edit2.SetFocus; end; |
Re: aus der zwischenablage holen und editfenster wechseln?
Bis jetzt legst du die Varibable laenge auf 3 und dann auf die Länge des Editfeldes , danach springst du zum nächsten.
Delphi-Quellcode:
Da war wer schneller :-\
procedure TForm1.Edit1Change(Sender: TObject);
begin if length(Edit1.Text) >= 3 then Edit2.SetFocus; end; Nun hast du in 3 Posts den gleichen Quelltext xD |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:09 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