![]() |
Re: Zahlen "verteilen"
durch ListBox2.Items , schrieb ich doch :roll:
|
Re: Zahlen "verteilen"
Oh, das ist ein Missverständnis. Ich meinte eine TStringList. Ich will ja nichts visuelles.
|
Re: Zahlen "verteilen"
dann einfach NamenDeinerStringList.Add :wink:
|
Re: Zahlen "verteilen"
Das schon, aber Memo1.Lines.Count, wie kann ich das ersetzen?
|
Re: Zahlen "verteilen"
Also jetzt markier mal TMemo und drück F1, anschliesend schaust du dir mal die Eigenschaft Lines an.
Wie ich oben geschrieben habe, ist TMemo.Lines vom Typ TStringList. Zitat:
|
Re: Zahlen "verteilen"
Delphi-Quellcode:
random(32)+1
|
Re: Zahlen "verteilen"
@MrKnogge
Ich hoffe du hältst meine Fragerei noch aus, aber ich bring da grad einiges durcheinander: Das mit dem Add und Count ist klar, ist ja bei TMemo und TstringList sehr ähnlich. Aber wie kann ich diesen Ausdruck ersetzen: Memo1.Lines[b] ? Ich hatte IndexOf probiert, aber dann kamen einige Zahlen doppelt vor. Vielen Dank für die bisherige Hilfe Spurius |
Re: Zahlen "verteilen"
Nachtrag:
Ich hab das jetzt so gemacht:
Delphi-Quellcode:
Allerdings kommen dabei die Zahlen teilweise mehrfach vor, was mir bei der Lösung mit dem Memo nicht aufgefallen ist. Wie kann ich das umgehen?
var
Form1: TForm1; List, List2: TStringlist; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var a,b,Zahl: integer; Disc: boolean; begin randomize; List := TStringlist.Create; List2 := TStringlist.Create; for a := 1 to 32 do begin List.Add(inttostr(a)); end; while List2.Count < 8 do begin Zahl := random(32); for b := 1 to List2.Count do begin if Zahl = List2.IndexOf(IntToStr(b)) then Disc := False; end; if Disc = true then List2.Add(IntToStr(Zahl)); Disc := true; end; memo1.Lines.Add(List2.Text); end; end. |
Re: Zahlen "verteilen"
Hi Spirius,
Deine anfängliches Problem war ja, wie verteile ich 100 zahlen in 4 gleichgroße Portionen. Hat mich irgendwie angespornt. Um keine doppelten Zahlen zu erhalten, ist mir da auch eine Lösung eingefallen. Werde mal mein Gedankengut verschütten, auch wenn Du ja selbst schon eine Lösung hast. Ist 'ne visuelle Darstellung mit 4 Memos (memo1 bis memo4) und ein Button
Delphi-Quellcode:
Gruß Lantis
procedure TForm1.Button1Click(Sender: TObject);
var i,z,n:integer; sl:TStringList; begin z:=0; randomize; //besser nur 1mal im Form.Create sl:=TStringList.Create; sl.Sorted:=True; //nötig, damit nächste Zeile funktioniert sl.Duplicates:=dupIgnore; //keine doppelten Zahlen for i:=1 to 4 do TMemo(FindComponent('memo' + IntToStr(i))).Clear; try while sl.Count<100 do //solange, bis alle 100 Zahlen mal dran waren for i:=1 to 4 do begin n:=sl.Count; //aktuelle Zahlenmenge merken while sl.Count=n do //solange probieren bis neue Zahl ermittelt wurde begin z:=round(random(100)+1); sl.Add(intToStr(z)); end; TMemo(FindComponent('memo' + IntToStr(i))).Lines.Add(intToStr(z)); end; finally sl.Free; end; end; |
Re: Zahlen "verteilen"
Danke dass du dich mit dem Problem beschäftigt hast, ich würde halt gern meine Lösung verwenden, wobei ich den Fehler noch nciht gefunden habe. Also wenn du dir mal meinen Code anschauen würdest, würdest du mir einen Gefallen tun.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:31 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