Computerhilfen.de Logo
Forum
Tipps
News

Delphi random string

hallo
also mein problem ist ich will per random funktion in einem delphi programm besimmte strings zufällig auswählen lassen. xxx := random('string1','string2'...); geht anscheinend nicht,also wie mache ich das??


Antworten zu Delphi random string:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Was heißt "geht anscheinend nicht"? Gibts nen Compilerfehler, stürzt das Programm ab, macht es nicht das was es soll...?
Gibt es diese Funktion denn in Delphi? Normalerweise sollte die ja eine Zufallszahl generieren. Mit der du dann z.B. auf einen String in nem Array zugreifen kannst, also etwa

VAR myArray: ARRAY[0..9] of STRING;
// irgendwie füllen, also myArray[0] = 'dsgfjdas' usw...
// zufälliges Element auswählen
myArray[random(10)]

jop kam immer fehlermeldung, aber so gehts iwie auch net: E2004 Bezeichner redefiniert: 'fragenarray'
E2029 Bezeichner erwartet, aber String-Konstante gefunden

 fragenarray : ('stringa','stringb','stringc');
  hier           hier
  erster         zweiter
  fehler         fehler

« Letzte Änderung: 06.11.08, 21:04:21 von Hering98765 »

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Kannst du mal nen größeren Ausschnitt posten? Ich blick da gerade nicht durch, was mir das sagen soll. Oder hast du einfach das = vergessen?

fragenarray := ( 'stringa', 'stringb', 'stringc' );

wenn ich ein "=" setze kommt noch eine fehlermeldung dass er ein ":" erwartet aber ein":=" gefunden hat..
aber hier der code :

Zitat
unit project;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Buttons, StrUtils;

type
  TForm1 = class(TForm)
    Spielstart: TBitBtn;
    Ende: TBitBtn;
    Wiederholen: TBitBtn;
    Ueberschrift: TPanel;
    A: TButton;
    C: TButton;
    B: TButton;
    AntwortA: TLabel;
    AntwortB: TLabel;
    AntwortC: TLabel;
    AntwortD: TLabel;
    D: TButton;
    Frage: TLabel;
    procedure beenden(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  fragenarray : array[0..9] of string;
  fragenarray[1] := 'hallo';


implementation
{$R *.dfm}

procedure TForm1.beenden(Sender: TObject);
begin
close;
end;

end.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ich schätze mal, dass die Zuweisung (fragenarray[1] := 'hallo';) im Implementationsteil stehen muss, d.h. unter dem "implementation" 

so?
 

Zitat
unit werwirdmil;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Buttons, StrUtils;

type
  TForm1 = class(TForm)
    Spielstart: TBitBtn;
    Ende: TBitBtn;
    Wiederholen: TBitBtn;
    Ueberschrift: TPanel;
    A: TButton;
    C: TButton;
    B: TButton;
    AntwortA: TLabel;
    AntwortB: TLabel;
    AntwortC: TLabel;
    AntwortD: TLabel;
    D: TButton;
    Frage: TLabel;
    procedure beenden(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
var
  fragenarray : array[0..9] of string;
  fragenarray[0] = 'h'  <--- ":"erwartet,aber"["erhalten
                             UNIT erwartet aber integer
                             erhalten (fehlermeldung)

procedure TForm1.beenden(Sender: TObject);
begin
close;
end;

end.

geht aber noch immer net s. Code...

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Nein, so:

var
    Form1: TForm1;
    fragenarray : array[0..9] of string;

implementation
{$R *.dfm}
 
    fragenarray[0] := 'huhu';

hm hab ich gemacht, kommt aber ne fehllermeldung bei

Zitat
fragenarray[0] := 'huhu';
Fehlermeldung:
[Pascal Fehler] project.pas(64): E2029 Deklaration erwartet, aber Bezeichner 'fragenarray' gefunden

hab die lösung gefunden, man muss in der procedure die einzelnen strings definieren z.B. so:
 

Zitat
procedure TForm1.anfangen(Sender: TObject);
begin
fragenarray [1] := 'haha';

dann gehts trotzdem danke

wie wärs damit, falls es noch was bringt:

Zitat
var
  fragenarray: array [0..9] of string =('string1', 'string2', 'string3', 'string4', 'string5', 'string6', 'string7', 'string8', 'string9', 'string10');

dann hast du den array gefüllt und kannst dann im code selber wieder einzel definieren.

noch fragen?

« maus - funktion in visual c++ 6J# programm »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!