[delphi] Zufallszahlen+Startfenster [GELÖST]

Fehlermeldungen kommen keine - es wird halt einfach nicht angezeigt...

das "IntToStr()" meinte er schon hier:

Code:
 Str((random(9000)+1000),wert1);
Str((random(9000)+1000),wert2);
Str((random(9000)+1000),wert3);
Str((random(9000)+1000),wert4);
oder? wenn ich da aus dem Str ein IntToStr mache dann kommt folgender Fehler:

[Error] Unit1.pas(46): Zu viele Parameter
[Error] Unit1.pas(47): Zu viele Parameter
[Error] Unit1.pas(48): Zu viele Parameter
[Error] Unit1.pas(49): Zu viele Parameter

und das mit dem "var wert1,wert2,wert3,wert4:string;" hat ich jetzt net so wirklich kapiert wohin damit...
 
zu dem var:

ein var reicht in Delphi, da fehlt keins mehr...

zu den Fehlern:

Ich könnte dir jetzt sagen wie IntToStr benutzt wird, aber ich schließe mich da bitmuncher an, fang an initiative zu zeigen. btw das erste!!! ergebnis von google könnte dir unter umständen helfen... :rolleyes:
 
Original von Agent3004
Das erste ergebnis? welche suchwörter?

// OT

AAAARRRGGGHHH Mordgedanken...

// End OT

such nach Weihnachtsmann :P

nein wie wäre es zum Beispiel mit "IntToStr Delphi"???
 
zum glück nur gedanken =D

thx

IntToStr:

function IntToStr(Value: Integer): string; overload;

function IntToStr(Value: Int64): string; overload;

Wandelt eine ganze Zahl in einen String um.


sag mir leider nicht viel... *net schlachten plz* bin halt nochn noob und muss erst noch das standart zeugs da lernen aber ich wollte halt davor noch dieses Projekt fertigstellen...
 
@ copykill : Stimmt, hast Recht, hab schon länger nichts mehr in Delphi gecodet.

@ Agent3004 : Wir haben damals mit den Grundlagen begonnen, erstmal nur Konsolenapplikationen geschrieben, im 2. Jahr erst die GUIs... Solltest du vielleicht auch tun, und mal googlen lernen, dir ein Tutorial / Buch besorgen... Und froh sein, dass dein Thread immer noch nicht im Planschbecken rumdümpelt, da sind schon andere vor dir gelandet!
 
Willkommen beim Grundkurs Delphi ;)

So, ich versuche also mal meine angestaubten Delphi-Kenntnisse auszubuddeln. Mir ist da nämlich vorhin ein Fehler unterlaufen. Die Eigenschaft heisst 'Caption' und nicht 'Text'. Ist halt schon einige Jahre her, als ich das letzte Mal mit Delphi/Pascal zu tun hatte, aber mal ein Blick in die Eigenschaften-Liste deines TEdit-Felds, hätte dir die Lösung gezeigt.

Um IntToStr zu verwenden, mache aus

Code:
Str((random(9000)+1000),wert1);

einfach ein

Code:
wert1 := IntToStr( (random(9000) + 1000) );

Das besagt nämlich auch die Syntax-Beschreibung...
Code:
function IntToStr(Value: Integer): string; overload;

Diese Zeile bedeutet, dass es eine Funktion ist (function) und keine Prozedur, mit dem Namen IntToStr. Sie übernimmt als Parameter einen Integer-Wert (Value: Integer) und gibt einen String zurück (: string). Ausserdem handelt es sich um eine überladene Funktion, d.h., dass es gleiche Funktionen mit diesem Namen gibt, die aber andere Parameter entgegen nehmen, wie z.B. 'function IntToStr(Value: Int64): string; overload;'.

Soviel also mal zur Leseweise von Syntax-Beschreibungen.

Willst du nun einen Event-Handler machen, muss der Code also folgenden Ablauf haben:

* Erzeugen der Zufallszahlen und Umwandlung in Strings (mittels IntToStr)
* Zusammensetzen des auszugebenen Strings
* Setzen des Werts für die Eigenschaft 'Caption' des Eingabefelds 'Edit1'
Code:
Edit1.Caption := output;
Willst du ein besseres Error-Handling haben, z.B. dass es eindeutigere Fehlermeldungen gibt, wenn das Feld Edit1 z.B. zu Testzwecken o.ä. entfernt wurde, dann verwende FindComponent um das TEdit zu ermitteln:

Code:
TButton(FindComponent('Edit1')).Caption := output;

Nun sollte es dir hoffentlich möglich sein dir einen ordentlichen Handler daraus zu machen.
 
Die Eigenschaft heisst 'Caption' und nicht 'Text'. Ist halt schon einige Jahre her, als ich das letzte Mal mit Delphi/Pascal zu tun hatte, aber mal ein Blick in die Eigenschaften-Liste deines TEdit-Felds, hätte dir die Lösung gezeigt.

Edit1.Text war schon richtig, Caption wird z.B. bei Labels verwendet.

@ Agent3004 : Wenn du willst kannst du dein Programm ja mal hier uploaden (ZIP mit der *.frm, *.pas und *.dpr) Schaus mir dann kurz an (mein Windows läuft gerade).
 
Code:
procedure TForm1.Button1Click(Sender: TObject);
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;

So klappt es, Agent3004 hatte das (für Pascal gebräuchliche) "procedure generate;" mitkopiert.

Da ich grad meinen sozialen Moment hab, hab ich dir mal in meinen Bookmarks ein paar Links rausgesucht die dir helfen werden:

http://www.bergt.de/workshop/delphi/inhalt.htm
http://www.epinasoft.com/delphikurs/
http://www.delphibasics.co.uk/
http://www.dsdt.info/
http://www.delphipraxis.net/
http://www.delphi-forum.de
http://delphi.about.com/
http://www.swissdelphicenter.ch/torry/
 
Danke euch allen, es klappt... nurnoch 1 Frage:

Kann ich irgentwie die "Form3" als erstes starten lassen? also wie 'n Willkommensbildschirm (der halt checkt ob da ne internetverbindung ist - aber das hab ich alles schon)

also nur ob ich die "Form3" als erstes beim programmstart öffnen lassen kann... (also später bei der exe dann)

Agent3004
 
Du kannst es zumindest mitstarten lassen und in den Vordergrund setzen. Einfach die Create-Prozedur von Form3 beim Starten von Form1 aufrufen.
 
anders geht das nicht?

oder kann ich beim start einen verbindungstest zum internet durchführen lassen und wenn keine verbindung da ist ein neues fenster öffnen und das alte schließen und wenn eine verbindung da ist nichts machen?
 
Ich weiß nicht, ob es bei Delphi genauso ist, wie bei VB, aber da die Programmierungsumgebungen sich beide sehr ähneln...
Unter VB ist es Projekt -> Eigenschaften von Projekt1 -> Startobjekt

mfg soul
 
Zurück
Oben