Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   schleifen durchläufe aus editfeld !? (https://www.delphipraxis.net/173161-schleifen-durchlaeufe-aus-editfeld.html)

v0rBiZ 10. Feb 2013 11:38

schleifen durchläufe aus editfeld !?
 
hallo
bin neu hier und habe in sachen delphi auch noch nicht so den durchblick.

habe folgendes problem.
ich möchte aus einem editfeld die länge (anzahl der durchläufe) einer for schleife auslesen, und komme nicht weiter.
also quasi so...

Code:
var i: integer;
begin
for i := 0 to edit1.text do
begin
   Keybd_Event(VK_Down,  1, 0, 0);
   Sleep(Random(3000) + 2000);
 end;
 end;
end.

DeddyH 10. Feb 2013 11:44

AW: schleifen durchläufe aus editfeld !?
 
TEdit.Text enthält einen String, Du brauchst aber eine ganze Zahl. Daher wirst Du den String zunächst in eine solche Zahl konvertieren müssen. Mögliche Funktionen dazu sind StrToInt, StrToIntDef, TryStrToInt oder ganz historisch Val. Welche Du davon benutzen möchtest, hängt davon ab, wie Du bei Fehleingaben reagieren möchtest ("Bla" kann z.B. nicht konvertiert werden).

P.S.: Willkommen in der DP :dp:

v0rBiZ 10. Feb 2013 11:56

AW: schleifen durchläufe aus editfeld !?
 
Code:
var i: integer;
laenge : string;
begin
laenge := edit1.Text;
for i := 0 to strtoint(laenge) do
so richtig ?

DeddyH 10. Feb 2013 12:01

AW: schleifen durchläufe aus editfeld !?
 
Das wäre eine Möglichkeit. Solange nur ganze Zahlen bis maximal etwas über 2,1 Milliarden im Edit stehen, sollte das auch funktionieren. Zur Not hilft Ausprobieren ;)

v0rBiZ 10. Feb 2013 12:05

AW: schleifen durchläufe aus editfeld !?
 
ok er macht nun was ich möchte nämlich aus dem edit lesen, aber wenn ich jetzt ins edit eine 3 schreibe, dann läuft er die schleife nicht 3x ab sondern 5x..!?

DeddyH 10. Feb 2013 12:10

AW: schleifen durchläufe aus editfeld !?
 
5, nicht 4? Du beginnst ja bei 0, das macht dann bei einer eingegebenen 3 nach meiner Rechnung 4 mal:
Code:
0 - Erster Durchlauf
1 - Zweiter Durchlauf
2 - Dritter Durchlauf
3 - Vierter Durchlauf
Ändere doch einfach den Startwert in 1.

v0rBiZ 10. Feb 2013 12:14

AW: schleifen durchläufe aus editfeld !?
 
mein fehler =)
ja wenn ders tartwert 0 ist dann macht er es 4x ändere ich ihn auf 1 dann 5x.
wie bekomme ich es den hin das er die schleife exakt so oft durchläuft wie es im edit steht ?

DeddyH 10. Feb 2013 12:17

AW: schleifen durchläufe aus editfeld !?
 
Zeig mal mehr Code, irgend etwas machst Du anscheinend falsch.

v0rBiZ 10. Feb 2013 12:22

AW: schleifen durchläufe aus editfeld !?
 
Code:
var i: integer;
laenge : string;
begin
  laenge := edit1.Text;
 for i := 0 to strtoint(laenge) do
begin
   Keybd_Event(VK_Down,  1, 0, 0);
   Sleep(Random(1000) + 1000);
  end;
 end;
procedure TForm1.edit1KeyPress(Sender: TObject; var Key: Char);
 begin
  if not (Key in ['0'..'9', Char(VK_BACK)]) then begin
    Application.MessageBox('nur zahlen erlaubt !','Fehler',48);
    Key := #0;
  end;
end;

end.

DeddyH 10. Feb 2013 12:35

AW: schleifen durchläufe aus editfeld !?
 
Außer, dass Du die Taste nicht wieder virtuell "loslässt", fällt mir auf den ersten Blick nichts auf. Was bezweckst Du denn eigentlich?


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:29 Uhr.
Seite 1 von 2  1 2      

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