AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Prozedur in einer Prozedur starten

Ein Thema von KesseK · begonnen am 1. Feb 2007 · letzter Beitrag vom 10. Feb 2007
Antwort Antwort
Seite 2 von 2     12   
mo_greene

Registriert seit: 10. Dez 2006
Ort: Berlin
136 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: Prozedur in einer Prozedur starten

  Alt 10. Feb 2007, 15:09
leider komme ich mit dieser Antwort nicht zur Lösung meines Problems...
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Prozedur in einer Prozedur starten

  Alt 10. Feb 2007, 15:16
Du wirst wohl in FormCreate irgendeiner Komponente den Fokus geben wollen, wobei die Komponente in FormCreate noch nicht sichtbar ist.
Irgendetwas in der Art wird es wohl sein, aber ohne Code kann ich dir auch nicht mehr sagen...
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
mo_greene

Registriert seit: 10. Dez 2006
Ort: Berlin
136 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: Prozedur in einer Prozedur starten

  Alt 10. Feb 2007, 15:20
Delphi-Quellcode:
var
  Form1: TForm1;
  a, b, c, richtig, falsch : integer;
  clo : boolean;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin
  Form1.ActiveControl := Produkt;
  Label1.Caption := '00:00:05'; //hier scheint der Fehler zu sein, da Delphi hierhin springt, nachdem ich bei der Fehlermeldung auf Okay geklickt habe
  a := random (10);
  b := random (10);
  Faktor1.Text := inttostr(a);
  Faktor2.Text := inttostr(b);
  clo := false;

end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Label1.Caption := TimeToStr(StrToTime(Label1.Caption)-0.000001);

  if Label1.Caption = '00:00:00then
  begin
     Edit3.Text := 'Game Over';
     Produkt.Visible := false;
     Button2.Visible := true;
     Button1.Visible := false;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  c := strtoint(Produkt.Text);

  if a * b = c then
  begin
    Edit3.Text := 'Richtig';
    Application.ProcessMessages;
    sleep(1000);
    Edit3.Clear;
    a := random (10);
    b := random (10);
    Faktor1.Text := inttostr(a);
    Faktor2.Text := inttostr(b);
    Produkt.Clear;
    Label1.Caption := '00:00:05';
    Form1.ActiveControl := Produkt;
    inc(richtig);
    Edit4.Text:=inttostr(richtig);
  end
  else
    begin
    Edit3.Text := 'Falsch';
    Application.ProcessMessages;
    sleep(1000);
    Edit3.Clear;
    a := random (10);
    b := random (10);
    Faktor1.Text := inttostr(a);
    Faktor2.Text := inttostr(b);
    Produkt.Clear;
    Label1.Caption := '00:00:05';
    Form1.ActiveControl := Produkt;
    inc(falsch);
    Edit5.Text:=inttostr(falsch);
  end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
 if clo = false then
 begin
  Timer1.Enabled := false;
  Faktor1.Clear;
  Faktor2.Clear;
  Produkt.Visible := false;
  Button2.Visible := true;
  Button1.Visible := false;
  clo := true;
  Button3.Caption := 'Schliessen';
 end
  else
    begin
     close;
    end;

end;

procedure TForm1.Button2Click(Sender: TObject); //nachdem diese Prozedur aufgerufen wurde, erscheint der Fehler
begin
  FormCreate(Self);
end;

end.
Wäre nett wenn mir jemand sagen könnte was ich falsch mache
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: Prozedur in einer Prozedur starten

  Alt 10. Feb 2007, 15:29
Form1.ActiveControl := Produkt; Das verursacht den Fehler, da das Formular in FormCreate (beim ersten Aufruf) nicht sichtbar ist.
[Falls du an einer eleganten Methode für deinen 5-Sekunden Timeout interessiert bist, zieh dir mal die Dokumentation vom Typ TDateTime rein ]
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
mo_greene

Registriert seit: 10. Dez 2006
Ort: Berlin
136 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: Prozedur in einer Prozedur starten

  Alt 10. Feb 2007, 15:38
okay vielen dank ...

nochmal ne grundsätzlichere frage:

wenn ich einer variablen einen zufälligen wert zuweise

a := random [10]; warum ist es dann so, dass die "zufälligen" Zahlen immer die gleiche Reihenfolge haben, nach Programmstart? Bei meinem Programm wo ich den Code geposted habe, wird der variablen z.b. immer eine 0 zugefügt, als nächstes eine 5, dann eine 2 etc...

woran liegt das?
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: Prozedur in einer Prozedur starten

  Alt 10. Feb 2007, 15:40
Du musst den Zufallsgenerator initialisieren mit Randomize() (aber nur genau einmal)
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
mo_greene

Registriert seit: 10. Dez 2006
Ort: Berlin
136 Beiträge
 
Turbo Delphi für Win32
 
#17

Re: Prozedur in einer Prozedur starten

  Alt 10. Feb 2007, 15:46
an welcher stelle und wie sieht diese prozedur aus??
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#18

Re: Prozedur in einer Prozedur starten

  Alt 10. Feb 2007, 15:51
Hier im Forum suchenRandomize << guckst Du
  Mit Zitat antworten Zitat
mo_greene

Registriert seit: 10. Dez 2006
Ort: Berlin
136 Beiträge
 
Turbo Delphi für Win32
 
#19

Re: Prozedur in einer Prozedur starten

  Alt 10. Feb 2007, 15:54
vielen Dank
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:45 Uhr.
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