Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Random (https://www.delphipraxis.net/140101-random.html)

DeddyH 12. Sep 2009 11:59

Re: Random
 
Das Randomize packst Du zuerst einmal ins FormCreate, dann wird es nur einmal ausgeführt ;). Und RandomValue hast Du ja auch nicht als Variable deklariert (es geht aber auch ohne diese Variable).
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  //Randomize; weg, ins FormCreate damit
  case random(10) of
    0: Form1.Show;
    1: Form2.Show;
    2: Form3.Show;
  end;//das end zum case
end;

holliesoft 12. Sep 2009 11:59

Re: Random
 
Zitat:

Zitat von Mothergrayham
ich hab doch nur einmal randomize geschrieben.

kommt der fehler "undefinierter bezeicher: randomvalue"

bitte nicht so viele fachausdrücke bin da noch nicht so drin.

Na ja, ich meinte eigentlich das hier:
Zitat:

(etwa im FormCreate).
Sonst wird das ja jedes mal beim ButtonClick aufgerufen.

Die Fehlermeldung bedeutet, dass Du die Variable RandomValue nicht deklariert hast.

Es fehlt:

Delphi-Quellcode:
var
  RandomValue: Integer;
vor dem begin.

Gruß
Patrick

//Edit: wo ist der rote Kasten, wenn man ihn braucht? :roll:

Matze 12. Sep 2009 12:01

Re: Random
 
Zitat:

Zitat von Mothergrayham
ich hab doch nur einmal randomize geschrieben.

Aber deine Prozedur wird beim Klick auf den Button komplett durchlaufen und somit wird bei jedem Klick "Randomize" aufgerufen. Es sollte pro Anwensungsstart allerdings nur einmal aufgerufen werden, egal wie oft "Random" folgt. Also packe "Randomize" ins OnCreate deines Formulars.

Wenn du "Random(10)" schreibst, wird dir eine Zufallszahl zwischen 0 und 9 zurückgegeben. Für deinen Testfall mit 3 Formularen müsstest du "Random(3)" nutzen. Denn wenn der Wert aktuell bsp. 5 ist, wird kein Formular aufgerufen. Vielleicht ist das schon der Fehler.

Edit: Hö, der rote Kasten scheint wirklich im Urlaub zu sein.

DeddyH 12. Sep 2009 12:03

Re: Random
 
[OT] Der Opa war schneller :mrgreen: [/OT]

Mothergrayham 12. Sep 2009 12:04

Re: Random
 
wenn du mir jetzt noch sagst was oder wo formcreate ist? in der unit steht davon nix.

DeddyH 12. Sep 2009 12:04

Re: Random
 
Mach mal in der IDE einen Doppelklick auf das Formular ;)

Mothergrayham 12. Sep 2009 12:08

Re: Random
 
procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin

RandomValue : random(3);
case RandomValue of
0: Form1.Show;
1: Form2.Show;
2: Form3.Show;
end;

jetzt sieht das so aus aber den fehler macht er immer noch

DeddyH 12. Sep 2009 12:12

Re: Random
 
Sei mir nicht böse, aber ein Grundlagentutorial erscheint mir angebracht. Nichtsdestotrotz:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
end;

procedure TForm1.Button1Click(Sender: TObject);
var RandomValue: integer; //Deklaration der Variablen
begin
  RandomValue := random(3);
  case RandomValue of
    0: Form1.Show;
    1: Form2.Show;
    2: Form3.Show;
  end; //dieses end darf nicht weggelassen werden
end;

Mothergrayham 12. Sep 2009 12:39

Re: Random
 
das klappt super ich danke euch. kann ich das jetzt mit unendlich vielen fenstern machen?

wenn ich euch dann richtig verstanden habe muss ich einfach die zahl in klammern hintern random verändern?

DeddyH 12. Sep 2009 12:44

Re: Random
 
Zwischen die Klammern setzt Du die Anzahl der verfügbaren Formulare. Allerdings musst Du nach dieser Vorgehensweise auch für jedes Formular ein case-Label schreiben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:38 Uhr.
Seite 2 von 4     12 34      

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