Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Schleife im Programm hinzufügen (https://www.delphipraxis.net/162244-schleife-im-programm-hinzufuegen.html)

Chris92 .A 14. Aug 2011 11:08

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

Sir Rufo 14. Aug 2011 11:27

AW: Schleife im Programm hinzufügen
 
Zitat:

Zitat von Chris92 .A (Beitrag 1116753)
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

Definier doch mal genauer was du mit den Schleifen meinst.
Soll dann x-mal ein Verarbeitungsschritt durchlaufen werden?

Dann einfach mit einer for -Schleife und gut.

Luckie 14. Aug 2011 11:29

AW: Schleife im Programm hinzufügen
 
Delphi-Quellcode:
for i := 0 to SpinEdit.value do

DeddyH 14. Aug 2011 11:31

AW: Schleife im Programm hinzufügen
 
Wenn Du bei 0 anfängst, musst Du aber einen abziehen ;)

Chris92 .A 14. Aug 2011 11:33

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

DeddyH 14. Aug 2011 11:34

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;

Chris92 .A 14. Aug 2011 11:42

AW: Schleife im Programm hinzufügen
 
Ok muss vielliecht etwas genauer noch werden:

Dieser Code soll da stehen wenn SpinEdit 1 ist:
Code:
  while I <= 90 do
  begin
     lbText.Items.Add(chr(I));
     I := I + 1;
  end;
Dies Code soll da stehen wenn SpinEdit 2 ist:
Code:
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;
Dies Code soll da stehen wenn SpinEdit 3 ist:
Code:
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;
usw...

MFG

Chris92 .A

Sir Rufo 14. Aug 2011 11:52

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 -

Chris92 .A 14. Aug 2011 11:53

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.

Gargoyl 14. Aug 2011 12:01

AW: Schleife im Programm hinzufügen
 
Delphi-Quellcode:
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;
Und aufrufen tust du es mit:
Delphi-Quellcode:
rek(SpinEdit.Value, '');
Ich habe es jetzt nicht getestet, aber so, oder so ähnlich könnte es funktionieren.

PS: ich habe deine WHILE Schleife durch eine FOR Schleife ersetzt.

Chris92 .A 14. Aug 2011 12:17

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...

Chris92 .A 14. Aug 2011 12:20

AW: Schleife im Programm hinzufügen
 
Ist gut hab das Problem gelöst vielen Dank für eure Hilfe!
Hab einfach vor
Code:
form1.lbValues.Items.Add(sStr+ chr(i));
noch eine If gesetzt und es funktioniert.
Code:
if sStr <> '' then
form1.lbValues.Items.Add(sStr+ chr(i));
MFG

Chris92 .A

Sir Rufo 14. Aug 2011 12:24

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

Chris92 .A 15. Aug 2011 12:48

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

DeddyH 15. Aug 2011 12:54

AW: Schleife im Programm hinzufügen
 
TListBox.Refresh aufrufen?

Chris92 .A 15. Aug 2011 13:15

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

DeddyH 15. Aug 2011 13:16

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.

Chris92 .A 15. Aug 2011 13:18

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

DeddyH 15. Aug 2011 13:20

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:

Chris92 .A 15. Aug 2011 13:23

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