Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi For-schleife und Loop (https://www.delphipraxis.net/195136-schleife-und-loop.html)

huyennguyen 5. Feb 2018 18:02

Delphi-Version: XE8

For-schleife und Loop
 
Hallo
Ich bin neu in Delphi und möchte euch etwas fragen. Ich brauche wirklich eure Hilfe:(

In der Aufgabe, ein Wort wird gegeben. Jedes mal wird Button geklickt, werden die Wortteile eingetragen:
1.mal: "w"
2.mal: "wo"
3.mal: "wor"
4.mal: "wort"
5.mal: "w" - und geht weiter

Ich hab geschrieben:

Delphi-Quellcode:
w:=Edit1.text;
st:='';
for k:= 1 to length(w) do
 begin
  st:=st + w[k];
  Edit2.text:=st;
 end;
das geht leider auch nicht

Kann jemand mir helfen? Danke im Voraus!

Frank Ranis 6. Feb 2018 06:17

AW: For-schleife und Loop
 
Hallo huyennguyen (hä, was für ein Benutzername) ,

Zitat:

Zitat von huyennguyen (Beitrag 1393134)
Hallo
Ich bin neu in Delphi und möchte euch etwas fragen. Ich brauche wirklich eure Hilfe:(

In der Aufgabe, ein Wort wird gegeben. Jedes mal wird Button geklickt, werden die Wortteile eingetragen:
1.mal: "w"
2.mal: "wo"
3.mal: "wor"
4.mal: "wort"
5.mal: "w" - und geht weiter

Ich hab geschrieben:

Delphi-Quellcode:
w:=Edit1.text;
st:='';
for k:= 1 to length(w) do
 begin
  st:=st + w[k];
  Edit2.text:=st;
 end;
das geht leider auch nicht

Kann jemand mir helfen? Danke im Voraus!

deine Ausgabeschleife ist an sich ist ja funktionstüchtig.
Du mußt aber bedenken , das der Rechner etwas flotter ist , als dein Auge.
Die Schleife wird ja innerhalb von Sekundenbruchteilen durchlaufen.
Also baut man zu Testen erst mal eine kleine Wartestelle ein.

Delphi-Quellcode:
 
 sleep(200); // <- damit die Schleife nicht rasend schnell durchlaufen wird eine kuze Pause machen
Und dann werden die Bildschirmelemente immer erst aktuallisiert , wenn die Application mal Zeit dafür findet.
Man muß dann eine Ausgabe erzwingen.

Delphi-Quellcode:
 
  edit2.Update;   // <- Das Edit 2 sofort ausgeben / updaten

Alles zusammen in der folgenden Routine.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var w,st:string;
    k:integer;
begin
w:=Edit1.text;
st:='';
for k:= 1 to length(w) do
 begin
  st:=st + w[k];
  Edit2.text:=st;
  edit2.Update;   // <- Das Edit 2 sofort ausgeben / updaten
  sleep(200); // <- damit die Schleife nicht rasend schnell durchlaufen wird eine kuze Pause machen
 end;
end;
Gruß

Frank

DeddyH 6. Feb 2018 06:20

AW: For-schleife und Loop
 
Wenn die Vervollständigung durch den Click auf einen Button schrittweise erfolgen soll, ist die Schleife doch komplett sinnlos.

Redeemer 6. Feb 2018 10:41

AW: For-schleife und Loop
 
Zitat:

Zitat von DeddyH (Beitrag 1393159)
Wenn die Vervollständigung durch den Click auf einen Button schrittweise erfolgen soll, ist die Schleife doch komplett sinnlos.

Das ist korrekt.

Es wäre aber ganz gut, wenn der TE mehr als "das geht leider auch nicht" (vor allem verwendet er das Wort "auch", obwohl er sein vorheriges/anderes Vorgehen nicht beschreibt) schreiben würde. Wir wissen hier zwar alle, was die Schleife tut, aber Probleme sollten in folgender Art beschrieben werden:
"Ich habe das gemacht: [Quelltext].
Es passierte dieses: [was passiert ist].
Ich will aber jenes: [was ich möchte]."

Lösung wäre, dass der TE einer Variable für die Anzahl der auszugebenden Zeichen einbaut.

CCRDude 6. Feb 2018 11:31

AW: For-schleife und Loop
 
Zitat:

Zitat von Frank Ranis (Beitrag 1393158)
Hallo huyennguyen (hä, was für ein Benutzername) ,

Huyen ist ein vietnamesischer Vorname, Nguyen ist ein häufiger vietnamesischer Nachname. Sagt ja auch keiner "hä" zu "Frank Ranis", oder?

Zitat:

Zitat von Frank Ranis (Beitrag 1393158)
Delphi-Quellcode:
sleep(200); // <- damit die Schleife nicht rasend schnell durchlaufen wird eine kuze Pause machen

Auch mit dem folgenden Update ist das gepfuscht, weil das Sleep ja dafür sorgt, dass in den 200 ms das UI einfriert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:17 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