Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Random tabelle ( array ) möglich?


MagicRain - Sa 27.06.09 22:02
Titel: Random tabelle ( array ) möglich?
Hallo Leute,

Ich habe ein problem was ich lösen will aber ich komme nicht weiter es will nicht so klappen wie ich es will...


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
function GetRandomElement(Elements: array of Integer): Integer;
begin
  Result := Elements[random(Length(Elements))];
end;

procedure TForm1.Button1Click(Sender: TObject);
CONST TB1 : array [1..4of DWORD = (
  176744476468,1886476444401,165667447644424,1564464545884);
  var
  X : DWORD;
begin
  X := GetRandomElement();
  Edit2.text :=  IntToStr(X);
end;

Ich will einfach nur das er random artig die werte meines arrays in meinem edit1 ausgibt und bei button klick immer einen neuen von der tabelle? geht das gar nicht mit delphi oder ? Danke für hilfe....


Delphi-Quelltext
1:
2:
[DCC Warnung] ASRKg1_main.pas(50): W1012 Konstantenausdruck verletzt untere Grenzen
[DCC Fehler] ASRKg1_main.pas(55): E2008 Inkompatible Typen



Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am So 28.06.2009 um 00:56


jaenicke - Sa 27.06.09 22:55

user profile iconMagicRain hat folgendes geschrieben Zum zitierten Posting springen:

Delphi-Quelltext
1:
2:
CONST TB1 : array [1..4of DWORD = (
  176744476468,1886476444401,165667447644424,1564464545884);
DWORD geht nur von 0..4294967295, deshalb gibt es natürlich eine Warnung, weil die Werte gar nicht reinpassen...

user profile iconMagicRain hat folgendes geschrieben Zum zitierten Posting springen:

Delphi-Quelltext
1:
  X := GetRandomElement();                    
Und wo bleibt das Array, das als Parameter angegeben ist (in der Deklaration von GetRandomElement)? :gruebel:

Und wenn du da TB1 stehen hattest: Das ist anders deklariert als der Parameter Elements.


MagicRain - Sa 27.06.09 23:04

Hmm das muss aber ja irgendwie gehen...ich muss eigentlich nur bestimmte Strings in random forum im edit1 ausgeben mehr nicht... also button klick1 ed = 78230209392 btk2 = 98729739828 und so weiter... weiß nicht wie ich das hibbekommen soll finde auch nichts vergleichbares :(

MfG


jaenicke - Sa 27.06.09 23:25

Meinst du das? :gruebel:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.Button1Click(Sender: TObject);
const
  TB1: array [0..3of String = ('176744476468''1886476444401',
    '165667447644424''1564464545884');
begin
  Edit2.Text := TB1[Random(Length(TB1))];
end;


MagicRain - Sa 27.06.09 23:28

Perfect! genau das war es was ich gesucht habe wieder mal große klasse dankeschön :)

MfG