Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Listbox Zahlen erhöhen (https://www.delphipraxis.net/195594-listbox-zahlen-erhoehen.html)

TarantelFaser47 12. Mär 2018 19:01

Delphi-Version: 7

Listbox Zahlen erhöhen
 
Hi ich möchte ne Listbox in der Zahlen stehen, die sich erhöhen also 1 --> 2 ---> 3 (von Würfelsimulation (Zahlen von 2-12))
Danke für Hilfe!

Der schöne Günther 12. Mär 2018 19:08

AW: Listbox Zahlen erhöhen
 
Und was genau ist dein Problem dabei? Was hast du schon versucht und was ging nicht?

günni0 12. Mär 2018 19:11

AW: Listbox Zahlen erhöhen
 
Zitat:

Hi ich möchte ne Listbox in der Zahlen stehen
Na dann bastel dir das doch zusammen.
Hört sich aber eher an nach Ich bin jetzt hier, also macht mal für mich.

TarantelFaser47 12. Mär 2018 19:31

AW: Listbox Zahlen erhöhen
 
Sorry, hatte gerade keine Zeit gehabt...

Die Sache ist die...
Ich hab ein Programm in dem 2 "Würfel" gewürfelt werden und die Augenzahlen dann addiert werden (also nur Zahlen von 2 bis 12).
Jetzt möchte ich die Zahlen [hab eine Variable summe : Array[2..12] of Integer;] in eine Listbox schreiben. Das ist auch kein Problem.
Bei meinem Info-Lehrer habe ich gesehen dass die Zahlen (in der Listbox) nicht aus dem nichts auftauchen, sondern sich erhöhen also z.B: Für 7: 1 --> 2 --> 3 --> 4 --> 5 ...
oder so.

Da ich ein Array habe weis ich jetzt nicht wie man das macht dass sich die Zahlen erhöhen...
Meine Idee war, die Items aus der Listbox immer wieder zu löschen und neu reinzuschreiben um die Zahlen zu erhöhen.

Hier die Prozedur um zu würfeln:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i,k,w1,w2 : integer;
    summe : array[2..12] of Integer;
begin
  randomize;
  button1.enabled := false;
  k := strtoint(edit1.Text);
                       nabled := false;
  listbox1.Clear;

  for i := 2 to 12 do
    summe[i] := 0;

  for i := 1 to k do
    begin
     listbox1.Clear;
     w1 := Random(6)+1;
     w2 := Random(6)+1;
     inc(summe[w1+w2]);
     sleep(50);
    end;

    for i := 2 to 12 do
      begin
      listbox1.Items.Add(floattostr(summe[i]));
      end;

    button1.Enabled := true;

end;

KodeZwerg 12. Mär 2018 19:49

AW: Listbox Zahlen erhöhen
 
Ich Verstehe leider nicht worauf genau Du hinaus willst obwohl Du es ja anscheinend beschrieben hast, aber IntToStr() würde ich anstelle von FloatToStr() einsetzen.

TarantelFaser47 12. Mär 2018 19:57

AW: Listbox Zahlen erhöhen
 
Ok, danke für den Tipp.

Normalerweise steht in der Listbox ja nichts, und auf einmal, wenn k-mal gewürfelt wurde, werden alle Zahlen hineingeschrieben.
aber ich möchte es so machen dass wenn z.B. eine 2 gewürfelt wurde, die Anzahl der Zweien um 1 steigt und das auch so in der Listbox angezeigt wird.

Ich hoffe ich kann es irgendwie verständlich machen.

günni0 12. Mär 2018 20:03

AW: Listbox Zahlen erhöhen
 
1) randomize; nur einmalig in FormCreate aufrufen und nicht bei jedem ButtonClick

2) lass das mit dem Array sein
3) die Würfelfunktion würde ich nach dem KISS-Prinzip schreiben
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
 Wuerfel1, Wuerfel2: 1 .. 6;
 Summe: 2 .. 12; // Das hier ist kein Array! Falls es hier Fehler beim Kompilieren gibt, schreib einfach Byte hin.
begin
 Wuerfel1 := Random(6) + 1;
 Wuerfel2 := Random(6) + 1;

 Summe := Wuerfel1 + Wuerfel2;
end;

KodeZwerg 12. Mär 2018 20:20

AW: Listbox Zahlen erhöhen
 
Ist die Listbox denn so etwas wie ein Zähler, wo gezählt werden soll wie oft eine Zahl gewürfelt wurde?
Falls ja, dann würd ich entweder 2 Arrays anlegen (für jeden Würfel = 1..6) oder ein gemeinsames Array fürs Ergebniss aus Würfel 1+2.
In beiden Fällen würde es ausreichen die Listbox Items direkt zu bearbeiten und nicht jedesmal alles neu erstellen lassen, das vermindert ein Flickern, oder BeginUpdate/EndUpdate für die Listbox einsetzen.
Ps: Die Listbox selbst kann auch dein Array sein, du musst dann halt nur mit Festen Index Werten umgehen, also Wissen das Index=0 deinem Würfelwert von 2 entspricht zum Beispiel. Also Listbox erstmal mit 10 leeren strings füllen, danach deine Würfelei, danach Listbox Item Text erneuern.

TarantelFaser47 12. Mär 2018 20:24

AW: Listbox Zahlen erhöhen
 
Ja, also da soll die Anzahl der Zweien, Dreien, ..., Zwölfen angezeigt werden (später noch grafisch dargestellt)
aber wie schaffe ich es dass sich die Zahlen in der Listbox (wie in meinem letzten Beitrag beschrieben) erhöhen.
Also in der Listbox: wenn eine 7 gewürfelt wurde: Anzahl: 0 --> 1 --> 2 ---> 3 (so soll es dargestellt werden, damit man sehen kann wie die Anzahl steigt.

KodeZwerg 12. Mär 2018 20:42

AW: Listbox Zahlen erhöhen
 
Angenommen Würfel A = 5 und Würfel B = 6, was soll in deiner Anzeige bei dieser Paarung Angezeigt werden?


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:44 Uhr.
Seite 1 von 3  1 23      

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