![]() |
Delphi-Version: 5
Schleife im Programm hinzufügen
Hallo liebe community,
Ich wollte wissen wie man im Programm eine Schleife hinzufügen kann obwohl das Programm schon läuft. Beispiel: Ich hab eine SpinEdit, wenn ich jetzt damit 3 auswähe, benötige ich 3 Schleifen bei 4, 4 Schleifen usw... Ich könnte dies jedoch mit einem case of lösen doch dies ist mir zu umständig da der Benutzer rein theoretisch auswählen kann was er will. MFG Chris92 .A |
AW: Schleife im Programm hinzufügen
Zitat:
Soll dann x-mal ein Verarbeitungsschritt durchlaufen werden? Dann einfach mit einer for -Schleife und gut. |
AW: Schleife im Programm hinzufügen
Delphi-Quellcode:
for i := 0 to SpinEdit.value do
|
AW: Schleife im Programm hinzufügen
Wenn Du bei 0 anfängst, musst Du aber einen abziehen ;)
|
AW: Schleife im Programm hinzufügen
Nein ich benötige jenachdem welche Zahl in der SpinEdit ausgewählt wurde soviele Schleifen im programm damit dieser richtig funktioniert.
Bei der Zahl 3 im SpinEdit benötige ich dies. while begin while begin while begin end end end Bei der Zahl 2 im SpinEdit benötige ich dies: while begin while begin end end |
AW: Schleife im Programm hinzufügen
Ja und?
Delphi-Quellcode:
for i := 1 to SpinEdit1.Value do
begin while Dings do begin DoSomethingWithDings; end; end; |
AW: Schleife im Programm hinzufügen
Ok muss vielliecht etwas genauer noch werden:
Dieser Code soll da stehen wenn SpinEdit 1 ist:
Code:
Dies Code soll da stehen wenn SpinEdit 2 ist:
while I <= 90 do
begin lbText.Items.Add(chr(I)); I := I + 1; end;
Code:
Dies Code soll da stehen wenn SpinEdit 3 ist:
while I <= 90 do
begin while G <= 90 do begin lbText.Items.Add(chr(I)+chr(G)); G := G + 1; end; I := I + 1; G := 65; end;
Code:
usw...
while I <= 90 do
begin while G <= 90 do begin while Z <= 90 do begin lbText.Items.Add(chr(I)+chr(G)+chr(Z)); Z := Z + 1; end; G := G + 1; Z := 65; end; I := I + 1; G := 65; end; MFG Chris92 .A |
AW: Schleife im Programm hinzufügen
Ich schieß mal so ins Blaue ... soll das Programm etwa alle Permutationen von Zeichenfolgen liefern (Char-Code von 65 bis 90) und du willst die Länge der Zeichenfolge vorgeben?
- Mal abgesehen davon, dass die Initialisierung der Schleifen-Variablen nicht korrekt ist - |
AW: Schleife im Programm hinzufügen
Ich will einfach wenn ich jetzt z.b sage 5 dass er mir alle möglichkeiten an Wörter kombintation vorgibt die es mit 5 buchstaben gibt.
|
AW: Schleife im Programm hinzufügen
Delphi-Quellcode:
Und aufrufen tust du es mit:
Procedure rek(iLoop: integer; sStr: String);
var i: integer; begin for i := 65 to 90 do begin if (iLoop > 1) then rek(iLoop - 1, chr(i) + sStr); lbText.Items.Add(chr(i) + sStr); end; end;
Delphi-Quellcode:
Ich habe es jetzt nicht getestet, aber so, oder so ähnlich könnte es funktionieren.
rek(SpinEdit.Value, '');
PS: ich habe deine WHILE Schleife durch eine FOR Schleife ersetzt. |
AW: Schleife im Programm hinzufügen
Ok danke Gargoyl dies funktioniert so nur ein Problem hab ich wenn er jetzt bei AZ angekommen ist soll ja BA kommen doch dann schreibt er als erstes einmal A und dann kommt erst BA. Das gleiche bei BZ.
So sieht es ungefähr aus: AA ... AZ A BA ... BZ B CA ... CZ C usw... |
AW: Schleife im Programm hinzufügen
Ist gut hab das Problem gelöst vielen Dank für eure Hilfe!
Hab einfach vor
Code:
noch eine If gesetzt und es funktioniert.
form1.lbValues.Items.Add(sStr+ chr(i));
Code:
MFG
if sStr <> '' then
form1.lbValues.Items.Add(sStr+ chr(i)); Chris92 .A |
AW: Schleife im Programm hinzufügen
Ersetze einfach das Semikolon am Ende der If Anweisung durch ein Else ;)
Dann funktioniert das auch immer und nicht nur bei der Auswahl 2 |
AW: Schleife im Programm hinzufügen
Danke für eure Hilfe, hab noch eine kleine Frage kann man es irgendwie Realisieren, dass man sieht wie die Listbox gefüllt wird und nicht erst nachdem alles fertig ist?
MFG Chris92 .A |
AW: Schleife im Programm hinzufügen
TListBox.Refresh aufrufen?
|
AW: Schleife im Programm hinzufügen
Ok das war mir klar mit dem Refresh aber dann flackert die ganze Listbox, und das bringt nicht den erwünschten Wert.
Es soll einfach nach einander angezeigt werden was in die Listbox durch die Schleife hinzugefügt wird. MFG Chris92 .A |
AW: Schleife im Programm hinzufügen
Entweder einen Thread verwenden oder nach jedem Hinzufügen Application.ProcessMessages aufrufen. Allerdings kannst Du dann je nach Datenmenge erst einmal einen Kaffee trinken gehen.
|
AW: Schleife im Programm hinzufügen
Ok ist gut hab es hin bekommen hab einfach den TopIndex der listbox verändert indem ich den TopIndex auf die Anzahl der Werte in der Listbox gesetzt habe und diesen um 1 verringert habe ergibt sich der gewünschte Effekt.
MFG Chris92 .A |
AW: Schleife im Programm hinzufügen
Wenn Du gesagt hättest, dass Du "live" durch die Datenmenge scrollen willst, hätte man das bestimmt schon früher vorgeschlagen :roll:
|
AW: Schleife im Programm hinzufügen
Da hast du vermutlich Recht, aber immer die richtige Wortwahl zu finden ^^
Trotzdem vielen Dank für eure Hilfe. MFG Chris92 .A |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:04 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