Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Button soll Programm neustarten (https://www.delphipraxis.net/154474-button-soll-programm-neustarten.html)

Eazel 12. Sep 2010 13:04

Button soll Programm neustarten
 
Hi
als Neuling bin ich auf eure Hilfe angewiesen^^

und zwar

ich hab so ein kleines Spiel gemacht indem man den richtigen Knopf drücken muss

ich möchte es gerne so haben, dass wenn man auf den falschen Button drückt ein anderer Button erscheint der dann das Spiel neustarten lässt(bis hierhin bin ich gekommen)

doch nun weiß ich leider nicht wie der Befehl dafür ist das Spiel neu zu starten

könnt ihr mir helfen?

haentschman 12. Sep 2010 13:18

AW: Button soll Programm neustarten
 
Willkommen in der DP ... :hi:
Zitat:

könnt ihr mir helfen?
...nicht wirklich, da deine Informationen äußerst dürftig sind. Versuche mal genauer zu beschreiben, was du wann vorhast. Ein wenig Quelltext wäre vieleicht auch von Vorteil. :thumb:

Eazel 12. Sep 2010 13:23

AW: Button soll Programm neustarten
 
ok also
Delphi 5 professional

wenn man den falschen Knopf gedrückt hat kommt ein "neustartenbutton" der dann das Spiel neustarten

quelltext? was meinst du damit?

ich wollte nur fragen ob es irgendwie ein befehl dafür gibt

Luckie 12. Sep 2010 13:27

AW: Button soll Programm neustarten
 
Quelltext ist das, was du in der IDE eingibst.

Ein Programm kann man mit Hier im Forum suchenShellexecute starten. Aber warum neu starten? Wäre es nicht sinnvoller die Benutzeroberfläche zurückzusetzen?

Eazel 12. Sep 2010 13:28

AW: Button soll Programm neustarten
 
ja oder so

ich bin ein anfänger und ihr seid die profis

ich habe nurmal so ein kleines spiel gemacht und komm jetzt nicht weiter

wie setzt man denn die oberfläche zurück?

Luckie 12. Sep 2010 13:34

AW: Button soll Programm neustarten
 
In dem man zum Beispiel die Variablen auf ihre Anfangswerte zurücksetzt. Aber das kommt ganz auf dein Programm an und was es macht bzw. wie es funktioniert.

Eazel 12. Sep 2010 15:45

AW: Button soll Programm neustarten
 
kannst du das mal bitte so erklären dass ich das verstehe(bin ein neuling^^)

youuu 12. Sep 2010 15:47

AW: Button soll Programm neustarten
 
Zeig uns doch mal ein wenig Quelltext, damit man dir es anhand deiner Variablen zeigen kann.

So können wir ja nur raten, was du dir programmiert hast.

Satty67 12. Sep 2010 15:49

AW: Button soll Programm neustarten
 
Eine fest eingebaute Funktion "Setze Program auf Startzustand" gibt es nicht!

Du selbst hast den Startzustand ja festgelegt, indem Du Variablen mit Startwerten gefüllt hast. Deshalb musst Du selbst an diese Stelle zurück und selbst die Variablen auf Anfangszustand zurücksetzen. Am einfachsten hat man dieses Zurücksetzen in eine eigene Funktion gelegt, die man dann Aufruft.

Da das aber sehr abhängig vom geschriebenen Code ist, wirst Du nicht drum herum kommen, etwas Beispielcode aus Deinem Programm zu posten. Es gibt einfach keine allgemeine Lösung ala "befehl ResetProgramm"

Eazel 12. Sep 2010 15:51

AW: Button soll Programm neustarten
 
ok also ich poste jetztmal alles:

Delphi-Quellcode:
unit pHelloWorld;

interface

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

type
  THelloWorld = class(TForm)
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Timer1: TTimer;
    ProgressBar1: TProgressBar;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Button1: TButton;
    procedure Button5Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  HelloWorld: THelloWorld;

implementation

{$R *.DFM}

procedure THelloWorld.Button5Click(Sender: TObject);
begin
HelloWorld.Color := clblue;
HelloWorld.caption := 'Blau';
Button5.Visible := false;
Button7.visible := true;
end;

procedure THelloWorld.Button7Click(Sender: TObject);
begin
HelloWorld.color := clgreen;
HelloWorld.caption := 'Grün';
Button7.visible := false;
Button2.visible := True;
Button6.visible := true;
Button3.visible := true;
Button8.visible := true;
Button4.visible := true;

end;

procedure THelloWorld.Button4Click(Sender: TObject);
begin
 Button2.Visible := false;
 Button6.visible := false;
 Button3.visible := false;
 Button8.Visible := false;
 Button4.visible := false;
 HelloWorld.caption := 'Glückwunsch';
 Timer1.Enabled := true;
 ProgressBar1.Visible := true;
 Label1.visible := true;
 Label2.visible := true;

end;

procedure THelloWorld.Timer1Timer(Sender: TObject);
begin
ProgressBar1.Position := ProgressBar1.Position+1;
if ProgressBar1.Position=100 then close;
end;

procedure THelloWorld.Button6Click(Sender: TObject);
begin
Label3.visible:= true;
Button2.Visible := false;
Button3.visible := false;
Button8.Visible := false;
Button4.Visible := false;
Button6.visible := false;
Label4.visible := true;
Button1.visible := true;

end;

procedure THelloWorld.Button3Click(Sender: TObject);
begin
      Label3.visible:= true;
Button2.Visible := false;
Button3.visible := false;
Button8.Visible := false;
Button4.Visible := false;
Button6.visible := false;
Label4.visible := true;
Button1.visible := true;
end;

procedure THelloWorld.Button8Click(Sender: TObject);
begin
Label3.visible:= true;
Button2.Visible := false;
Button3.visible := false;
Button8.Visible := false;
Button4.Visible := false;
Button6.visible := false;
Label4.visible := true;
Button1.visible := true;
end;

procedure THelloWorld.Button2Click(Sender: TObject);
begin
Label3.visible:= true;
Button2.Visible := false;
Button3.visible := false;
Button8.Visible := false;
Button4.Visible := false;
Button6.visible := false;
Label4.visible := true;
Button1.visible := true;

end;

procedure THelloWorld.Button1Click(Sender: TObject);
begin
HelloWorld.Close;
end;

end.
[edit=Matze][delphi]-Tags eingefügt. Zukünftig bitte selbst daran denken. MfG Matze[/edit]

Eazel 12. Sep 2010 15:54

AW: Button soll Programm neustarten
 
danke fürs einrahmen weiß nicht wie das geht

mkinzler 12. Sep 2010 15:55

AW: Button soll Programm neustarten
 
Einfach Code markieren und Button mit Delphi-Symbol drücken

Eazel 12. Sep 2010 15:57

AW: Button soll Programm neustarten
 
hab mal noch eine frage

wieso kann ich jetzt nachdem ich gespeichert habe und delphi neugestartet habe nicht mehr debuggen?

mkinzler 12. Sep 2010 15:58

AW: Button soll Programm neustarten
 
Sollte eigentlich gehen

Satty67 12. Sep 2010 16:00

AW: Button soll Programm neustarten
 
Quelltexte in Delphi-Tags setzen! Wie geht das? Quell-Text nach dem einfügen markieren und auf den kleinen Römerhelm klicken ;-)

Zur Frage...

Tippe folgendes ein:

das muss ziemlich oben in Deine Formular-Deklaration
Delphi-Quellcode:
private
{ Private-Deklarationen }
  procedure THelloWorld.ResetUserInterface; // <-- Diese Zeile hier, rest ist schon da!
public
{ Public-Deklarationen }
end;
Das muss unter vor der letzte Zeile mit dem "end." rein:
Delphi-Quellcode:
procedure THelloWorld.ResetUserInterface;
begin
  // Hier Buttons wieder anzeigen und Farben setzen
end;
Jetzt kanns Du diese neue Funktion mit einem Button aufrufen, z.B.:
Delphi-Quellcode:
procedure THelloWorld.Button1Click(Sender: TObject);
begin
  ResetUserInterface;
end;

Eazel 12. Sep 2010 16:02

AW: Button soll Programm neustarten
 
nein geht leider nicht zu debuggen

da ist immer dann form1 geöffnet obwohl ich die anwendung helloworld genannt habe(name und caption)

und die form bleib leer obwohl mir beim programmieren alles voller buttons angezeigt wird

mkinzler 12. Sep 2010 16:04

AW: Button soll Programm neustarten
 
Und was steht im hauptprogramm/Projekt?

Satty67 12. Sep 2010 16:04

AW: Button soll Programm neustarten
 
Wie in einem Texteditor solltest Du deine Arbeit speichern und nach dem Neustart wieder Laden (Dateimenü!)

Eazel 12. Sep 2010 16:08

AW: Button soll Programm neustarten
 
@satty das habe ich auch gemacht aber es klappt nicht

Code:
Und was steht im hauptprogramm/Projekt?
wenn ich jetzt debugge steht da
Code:
[Fehler] Datei nicht gefunden: 'HelloWorld.DFM'
obwohl ich nichts gelöscht habe

Satty67 12. Sep 2010 16:13

AW: Button soll Programm neustarten
 
Schwer zu raten woran das liegt. Ein Rechte-Problem mit dem Ordner kann es ja fast nicht sein, da die projekt-datei scheinbar da ist?

Speichere Dein Projekt evtl trotzdem mal in einem anderen Ordner, z.B. in Eigene Dateien einen Ordner anlegen "Meine Delphi Projekte" und dort hinein speichern.

jfheins 12. Sep 2010 16:30

AW: Button soll Programm neustarten
 
Um das Formular zurückzusetzen:
Delphi-Quellcode:
 HelloWorld.Release();
 Application.CreateForm(THelloWorld, HelloWorld);
 HelloWorld.Show;
Habe ich jetzt mal aus der letzten Ecke meiner Codeschnipselkiste gekramt. Ist schon ewig alt, könnte aber funktionieren ;)

Satty67 12. Sep 2010 16:43

AW: Button soll Programm neustarten
 
Funktioniert aber wohl nur, solange noch nicht MainFormOnTAskbar eingeführt war (also bis D7)? Verhält sich bei meinem D2007 nicht zufriedenstellend :wink:

Zumindest hat es innerhalb der IDE bei Delphi 5 ziemliche Nebeneffekte, die man einem Neuling nicht antun sollte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:19 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