Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zufallsgenerator (https://www.delphipraxis.net/84547-zufallsgenerator.html)

FloJo 18. Jan 2007 12:04


Zufallsgenerator
 
Hey ho ...

Ich bin neu hier und hab auch erst vor kurzem angefangen mit Delphi zu programmieren.

Nun möchte ich ein kleines Spiel programmieren.

Wie schaff ich es, wenn ich jetz zum Beispiel 20 Shapes hab und ich möchte, dass immer nur 1 engezeigt wird.
Aber welches angezeigt wird, soll per Zufall entschieden werden.

Könnt ihr mir helfen !?

kann man es so machen, dass man einfach alle versteckt und dann eben immer eins sichtbar werden lässt !?

wenn ja wie würde das im Text aussehen !?


Danke

Flo

fLaSh11 18. Jan 2007 12:06

Re: Zufallsgenerator
 
du könntest mit random einen Wert zwischen 1 und 20 erzeugen und dann das jeweilige Shape mit FindComponent suchen, aber ich glaube TComponent hat keine Eigenschaft Visible...

//Edit: :party: :party: Ein herzliches Willkommen in der DP :party: :party:

//Nr.2: Also bliebe dir case...

Balu der Bär 18. Jan 2007 12:07

Re: Zufallsgenerator
 
Delphi-Referenz durchsuchenRandom

halinchen 18. Jan 2007 12:36

Re: Zufallsgenerator
 
Nicht vergessen vorher
Delphi-Quellcode:
 
randomize;
zu schreiben (Am besten in OnCreate der Form).

Chrissi91 18. Jan 2007 12:42

Re: Zufallsgenerator
 
Hi,

meines Wissens hat FindComponent die Eigenschaft Visible.

Eine kleine Hilfe FloJo:

Randomize; tust du in die FormCreate und folgenden Code führst du aus, wenn eine Zufallszahl gewählt werden soll. (Z.B. Timer, Button, etc.)

Delphi-Quellcode:
var
  Zufallswert: Integer;
begin
  Zufallswert = Random(20)+1; // + 1, weil sonst zwischen 0 und 19 ein Wert "gewürfelt wird"
end;
Und danach kannst du mit deinem Zufallswert und Hier im Forum suchenFindComponent ein Shape ansprechen.

p0w3r5tr34m3r 18. Jan 2007 12:45

Re: Zufallsgenerator
 
Delphi-Quellcode:
var
  shape: array[0..19] of TShape;
  i, randomValue: integer;
begin
  ...
  randomize;
  randomValue = random(high(shape));
  shape[randomValue].Visible := true;
end;
so könnte man es machen :)

Mit freundlichen Grüßen
Flo

FloJo 18. Jan 2007 15:09

Re: Zufallsgenerator
 
Hey!

Vielen Dank für euren schnellen Antworten!
Wenn ich ausem Geschäft wieder daheim bin, werd ichs gleich ma testen ;-)


Danke und Gruß Flo

Khabarakh 18. Jan 2007 15:40

Re: Zufallsgenerator
 
Zitat:

Zitat von p0w3r5tr34m3r
Delphi-Quellcode:
randomValue = random(high(shape));

Delphi-Quellcode:
RandomValue := Random(Length(Shapes));

3_of_8 18. Jan 2007 15:46

Re: Zufallsgenerator
 
FindComponent gibt eine TComponent zurück, Komponenten sind die Oberklasse für Kontrollelemente und nichtvisuelle Komponenten. Daher besitzt TComponent keine Visible-Eigenschaft. (FindComponent('wuppdi') as TControl).Visible müsste klappen. Allerdings ist FindComponent schlechter Stil, besser ist ein Array oder eine TObjectList oder was in der Art.

FloJo 18. Jan 2007 17:11

Re: Zufallsgenerator
 
Hey.

Also habs probiert und es hat dann auch mit hilfe von dem Code :

var
Zufallswert: Integer;
begin
Zufallswert = Random(20)+1; // + 1, weil sonst zwischen 0 und 19 ein Wert "gewürfelt wird"
end;

und dann dem Findcomponent geklappt ;-) !

Danke für eure Hilfe, ich werd sie sicher bald wieder brauchen ;-)

flo


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 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