Thema: Delphi Wert aus Array entfernen

Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#7

Re: Wert aus Array entfernen

  Alt 1. Mär 2008, 23:33
Also, ich würde das nach wie vor über eine Menge lösen (lbZiehung ist eine ListBox):
Delphi-Quellcode:
procedure TFrmLotto.FormCreate(Sender: TObject);
begin
  Randomize;
end;

procedure TFrmLotto.btnZiehungClick(Sender: TObject);
var Kugeln: set of byte;
    i, Zufall: byte;
begin
  lbZiehung.Items.BeginUpdate;
  try
    lbZiehung.Items.Clear;
    Kugeln := [1..49];
    for i := 0 to 5 do
      begin
        Zufall := Random(49) + 1;
        while not (Zufall in Kugeln) do
          Zufall := Random(49) + 1;
        Exclude(Kugeln, Zufall);
        lbZiehung.Items.Add(IntToStr(Zufall));
      end;
  finally
    lbZiehung.Items.EndUpdate;
  end;
end;
Allerdings ist die ListBox unsortiert, aber ein bisschen Arbeit soll ja auch noch bleiben, gell?

[edit] Und hier die Version mit einer Fußschleife:
Delphi-Quellcode:
procedure TFrmLotto.FormCreate(Sender: TObject);
begin
  Randomize;
end;

procedure TFrmLotto.btnZiehungClick(Sender: TObject);
var Kugeln: set of byte;
    i, Zufall: byte;
begin
  lbZiehung.Items.BeginUpdate;
  try
    lbZiehung.Items.Clear;
    Kugeln := [1..49];
    for i := 0 to 5 do
      begin
        repeat
          Zufall := Random(49) + 1;
        until Zufall in Kugeln;
        Exclude(Kugeln, Zufall);
        lbZiehung.Items.Add(IntToStr(Zufall));
      end;
  finally
    lbZiehung.Items.EndUpdate;
  end;
end;
@Appolonius: Zur Strafe schreibst Du die nächsten 3 Programme in vi, damit Du weißt, was ich hier durchmache (ich kämpfe hier mehr mit der IDE, als meinen Gedankengang zu Ende zu bringen [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat