[delphi] Zufallszahlen+Startfenster [GELÖST]

Hallo, ich bin relativ neu in Delphi und wollte in einem programm, sobald man auf einen Button klickt (also beim "Onclick" [procedure TForm1.Button1Click(Sender: TObject);] Event) eine zufallszahl ausgeben lassen die immer so aufgebaut sein soll (auch immer diese länge, wenn die leerstellen nicht möglich sind dann evt. | oder halt kein trennzeichen):

xxxx xxxx xxxx xxxx

also z.B.:

1364 9090 1235 1739

kann mir hier einer weiterhelfen?

ich bin in Delphi noch son ziemlicher noob...

Agent3004
 
Da ich im Moment kein Delphi habe, nur Pascal (sollte aber kompatibel sein)
Code:
procedure generate;
var output:string;
    wert1,wert2,wert3,wert4:string;
begin
  randomize;

  Str((random(9000)+1000),wert1);
  Str((random(9000)+1000),wert2);
  Str((random(9000)+1000),wert3);
  Str((random(9000)+1000),wert4);
  output:=wert1+' '+wert2+' '+wert3+' '+wert4;
  println(output);
end;
http://www.delphibasics.co.uk/RTL.asp?Name=Str
http://www.delphibasics.co.uk/RTL.asp?Name=Random
Wobei in Delphi es noch um einiges eleganter gehen sollte - die Konvertierung kann auch mit IntToStr erfolgen.
 
hmm da kommt jetzt dieser fehler:

"println(output);"

[Error] Unit1.pas(42): Undeclared indentifier 'println'
[Error] Unit1.pas(44): ';' expected but '.' found
[Error] Unit1.pas(46): Declaration expected but end of file found


edit: aso ja wo muss ich das denn hin? unter das procedure TForm1.Button1Click(Sender: TObject); oder net?
 
das
Code:
randomize;

  Str((random(9000)+1000),wert1);
  Str((random(9000)+1000),wert2);
  Str((random(9000)+1000),wert3);
  Str((random(9000)+1000),wert4);
  output:=wert1+' '+wert2+' '+wert3+' '+wert4
in der
procedure TForm1.Button1Click(Sender: TObject);
sollte das Gewünschte machen. Nur den output String musst Du noch geeignet ausgeben.

Allerdings: sicher, dass Du nicht erstmal die Grundlagen von Delphi machen solltest?
 
hab ich vor danach zu machen =) hab delphi auch erst seit gestern... und wollte halt das teil hinbekommen =D

jetzt kann ichs zwar starten aber wie geb ich das jetzt in dem "edit" feld aus?

Code:
 procedure generate;
var output:string;
wert1,wert2,wert3,wert4:string;
begin
randomize;

Str((random(9000)+1000),wert1);
Str((random(9000)+1000),wert2);
Str((random(9000)+1000),wert3);
Str((random(9000)+1000),wert4);
output:=wert1+' '+wert2+' '+wert3+' '+wert4
end;

end.
jetzt beschwert er sich dass da ein begin sein muss und kein end.

Code:
 procedure generate;
var output:string;
wert1,wert2,wert3,wert4:string;
begin
randomize;

Str((random(9000)+1000),wert1);
Str((random(9000)+1000),wert2);
Str((random(9000)+1000),wert3);
Str((random(9000)+1000),wert4);
output:=wert1+' '+wert2+' '+wert3+' '+wert4
end;

begin
end;
end.
Jetzt startet er es aber er gibt nichts aus...
 
Wenn du 'output' nicht ausgibst, gibt natürlich auch das Programm nichts aus. Du solltest den Text-Value des Edit-Felds entsprechend mit dem Inhalt der Variable 'output' füllen.

Edit: Und du solltest dir wirklich mal ein Tutorial zu Delphi nehmen, bevor du weitere Fragen stellst, die du selbst beantworten könntest, wenn du wenigstens die Grundlagen beherrschen würdest.
 
Original von AlterHacker
ich denke mal dass du ein END zuviel hast ;)

Nein, das stimmt schon, "end;" beendet die "Deklaration" (hoffe ihr wisst was ich meine :D ) und "end." beendet das "Project" ;)

Anhand deines Fehlers: "[Error] Unit1.pas(46): Declaration expected but end of file found" denke ich du hast ein "end;" zu wenig :)
Bin mir aber nicht sicher, bin auch nur ein anfänger :D
 
Du musst der Eigenschaft 'Text' vom TEdit-Objekt den Wert von 'output' zuweisen.

Beispiel:

Code:
Edit1.Text := output;

RTFM X(
 
hmm? unter Properties oder wo?

ps: jaja ich weiß ich nerf grad schon so langsam...

ps2: ja ich wiß auch das das zu den grundlagen gehört (denk ich zumindest)
 
Weil ich bis gerade eben die englische version hatte - und die hilfen da drin les ich nie weil ich sie selten kapier =)

EDIT: öööh wo genau in dem event teil? hab jetzt die deutsche version =)
 
Deine Funktion "TForm1.Button1Click" ist ein sogenannter Event-Handler. Er handhabt den Event für einen Klick auf den Button.

Mit deiner Einstellung wirst du es nie schaffen einigermaßen anständig zu programmieren. Als Entwickler/Programmierer braucht man solche Grundskills wie Eigeninitiative u.ä.
 
also das teil da:

Code:
 Edit1.Text := output;
dahin:

Code:
 procedure TForm1.Button1Click(Sender: TObject);
procedure generate;
var output:string;
wert1,wert2,wert3,wert4:string;
begin
randomize;

Str((random(9000)+1000),wert1);
Str((random(9000)+1000),wert2);
Str((random(9000)+1000),wert3);
Str((random(9000)+1000),wert4);
output:=wert1+' '+wert2+' '+wert3+' '+wert4
[color=#ff0000][b]Edit1.Text := output;[/b][/color]
end;

begin
end;
end.
ergibt ja keinen sinn...

dann meint der "Operator oder Semikolon Fehlt"

Jetzt hab ich 'n bissl rumgespielt und ausprobiert, es geht aber er zeigt trotzdem keine Zahlen an:

Code:
 procedure TForm1.Button1Click(Sender: TObject);
procedure generate;
var output:string;
wert1,wert2,wert3,wert4:string;
begin
randomize;

Str((random(9000)+1000),wert1);
Str((random(9000)+1000),wert2);
Str((random(9000)+1000),wert3);
Str((random(9000)+1000),wert4);
output:=wert1+' '+wert2+' '+wert3+' '+wert4
[color=#ff0000][b];Edit1.Text := output;[/b][/color]
end;

begin
end;
end.
Need help....
 
ganz ehrlich, tu uns allen einen gefallen und suche dir erstmal ein ordentliches tutorial!

und als nächstes lerne, fehlermeldungen auch zu lesen. wenn du wirklich den code so hast wie du ihn hier gepostet hast, dann ist der fehler in der zeile darüber, also in der
output:= wert1..., weil dort am ende ein semikolon fehlt
 
So, es klappt immer noch nicht mit dem darstellen der zufallszahlen... Hier ist mal der ganze Code, könnt ihr mir da bitte sagen was ich noch wo ändern muss?

Code:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    procedure Button1Click(Sender: TObject);
    procedure clickCheckBox1(Sender: TObject);
    procedure clickCheckBox2(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
 procedure generate;
var output:string;
wert1,wert2,wert3,wert4:string;
begin
randomize;

Str((random(9000)+1000),wert1);
Str((random(9000)+1000),wert2);
Str((random(9000)+1000),wert3);
Str((random(9000)+1000),wert4);
output:=wert1+' '+wert2+' '+wert3+' '+wert4;
Edit1.Text := output;
end;

begin
end;

procedure TForm1.clickCheckBox1(Sender: TObject);
begin
Button1.Enabled := CheckBox1.Checked AND CheckBox2.Checked;
end;

procedure TForm1.clickCheckBox2(Sender: TObject);
begin
Button1.Enabled := CheckBox1.Checked AND CheckBox2.Checked;
end;

end.
 
1. welche fehlermeldungen bekommst du? du musst dir einfach mal vorstellen, dass vermutlich die wenigsten hier, die dir grad helfen wollen, delphi bei sich auf dem rechner haben, um entsprechende fehlermeldungen selber nachlesen zu können.

2. wieso hast du die hinweise von Cyberm@ster nicht beachtet?
 
Zurück
Oben