Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Wiederholen/Schleifen von Ausgaben (https://www.delphipraxis.net/170779-wiederholen-schleifen-von-ausgaben.html)

Marcy 2. Okt 2012 20:50

Delphi-Version: 5

Wiederholen/Schleifen von Ausgaben
 
Guten Abend :)

ich hab mal ein einfaches Beispiel erstellt um mein Problem darzustellen. Angenomm ich möchte ein Programm schreiben wo ich ein beliebiges Wort eingebe und eine Anzahl und das Programm soll mein Wort sooft wie die angegebene Anzahl ausgeben.

Kurz also eine Wiederholung der Ausgabe. Ich hab das mit diversen Schleifen versucht aber es hat leider nicht funktioniert das Wort wird nur ein einziges Mal ausgegeben:

Code:
procedure THiS.FertigButtonClick(Sender: TObject);
var i, x : integer;
begin
  x:=strtoint(AnzahlEdit.text);
  i:=1;
  repeat AusgabeLabel.Caption:= WortEdit.text;
          i:=i+1  ;
    until i=x
    // gibt es zwar aus, aber wiederholt die ausgabe nicht...

  end;
end.

Code:
procedure THiS.FertigButtonClick(Sender: TObject);
var i, x : integer;
begin
  x:=strtoint(AnzahlEdit.text);
  for i:=1 to x do begin AusgabeLabel.Caption:= WortEdit.text;
  end;
end.
freue mich über eure Hilfe!

Einen schönen Abend :)

Luckie 2. Okt 2012 20:55

AW: Wiederholen/Schleifen von Ausgaben
 
Du musst der Oberfläche auch die Chance geben das Label zu aktualisieren. Entweder ein Application.ProcessMessages in die Schleife, dann hast du aber auch gewissen Nebeneffekte. Oder ein die Methode Update von TLabel aufrufen. Oder du lagerst das ganze in einen Thread aus mit der TThread Klasse am besten. Dann aber darauf achten, dass GUI Zugriffe nur synchronisiert6 erfolgen dürfen.

Helmi 2. Okt 2012 20:59

AW: Wiederholen/Schleifen von Ausgaben
 
Überleg dir bitte mal was bei dieser Anweisung passiert:
Delphi-Quellcode:
AusgabeLabel.Caption:= WortEdit.text;
?

Es wird der Text vom Edit ins Label geschrieben.
Und über deine Schleifen immer und immer wieder der gleiche Text

Du musst den Text zusammenbauen. Z. B. so:
Delphi-Quellcode:
procedure THiS.FertigButtonClick(Sender: TObject);
var
  i, x : integer;
  S: String;

begin
  //vordefinieren
  S := '';

  x := strtoint(AnzahlEdit.text);
 
  for i:=1 to x do
    begin
      S := S + WordEdit.Text;
    end;

  AusgabeLabel.Caption := S;
end;

Luckie 2. Okt 2012 21:01

AW: Wiederholen/Schleifen von Ausgaben
 
Stimmt, das kommt dazu.

himitsu 2. Okt 2012 21:02

AW: Wiederholen/Schleifen von Ausgaben
 
Und dann noch was ganz Wichtiges:
Wenn ich x-mal das selbe Wort haargenau übereinander/aufeinander auf einen Zettel schreibe.
Wie of steht dann das Wlrt da drauf?

[edit]
Ich tippe einfingerich eindeutig zu langsam. (Ausrede: eine Katze schläft auf mir)


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