![]() |
Re: 6 aus 49 will nicht so richtig
ja mit diesen Grundfunktionen komm ich auch klar :P
wir hatten jetzt noch was mit memo1.delete oder so, und dass muss i iwie reinbauen... |
Re: 6 aus 49 will nicht so richtig
Zunächst einmal sollte man Randomize nur einmalig im Programm aufrufen (z.B. im OnCreate). Und ob die gezogene Zahl bereits im Memo vorhanden ist, bekommst Du mit Memo.Lines.IndexOf heraus (dazu muss die Zahl aber erst in einen String gewandelt werden). Bei weiteren Fragen einfach fragen.
|
Re: 6 aus 49 will nicht so richtig
wie genau baue ich das Memo.Lines.IndexOf ein? und wo?
|
Re: 6 aus 49 will nicht so richtig
Aus dem Kopf:
Delphi-Quellcode:
Memo.Lines.Clear;
for i := 1 to 6 do begin repeat Zahl := Random(49) + 1; until Memo.Lines.IndexOf(IntToStr(Zahl)) < 0; Memo.Lines.Add(IntToStr(Zahl)); end; |
Re: 6 aus 49 will nicht so richtig
und das vergleicht jetzt, ob in dem memo, wo die zahlen zufällig sind, ob da nun eine doppelt vorkommt
oder wie? (Wenn ja, das Problem hatte ich doch schon gelöst :() |
Re: 6 aus 49 will nicht so richtig
@Opa Deddy
Bei meinem Vorgehen ist eine bereits gezogene Zahl im Lotto-Array mit 0 überschrieben. Also brauchen keine weiteren Überprüfungen auf Doppelgänger erfolgen. Es muß am am Ende nur da Lotto-Array auf Nullen überprüft werden. Zusätzlich entfällt die lästige Sortiererei. ;-) Gruß Wolfgang |
Re: 6 aus 49 will nicht so richtig
Mein Code sollte doch nur die Ziehung simulieren, da hab ich wohl etwas falsch verstanden. Sortiert wird da übrigens nix ;)
[edit] Und die Inhalte zweier Memos kann man ja auch mit IndexOf vergleichen. Ist zwar nicht die schnellste Möglichkeit, sollte aber verständlich sein. [/edit] |
Re: 6 aus 49 will nicht so richtig
:-D
|
Re: 6 aus 49 will nicht so richtig
könntet ihr jetzt meine frage von seite 1 beantworten? :? :wiejetzt:
|
Re: 6 aus 49 will nicht so richtig
Noch einmal: Du kannst mit IndexOf bestimmen, ob der Eintrag bereits vorhanden ist und somit doppelte Eingaben vermeiden.
Delphi-Quellcode:
procedure TBla.Tippabgeben;
var Zahl: string; begin //ohne Eingabeprüfung auf Zahl, das kannst Du selbst übernehmen Zahl := EditEingabe.Text; //Memo.Lines nach Zahl durchsuchen if MemoTipp.Lines.IndexOf(Zahl) >= 0 then begin //schon drin ShowMessage('Zahl wurde bereits getippt'); EditEingabe.Clear; end //noch nicht drin -> eintragen else MemoTipp.Lines.Add(Zahl); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:47 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 by Thomas Breitkreuz