AGB  ·  Datenschutz  ·  Impressum  







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

Fehler nach Schließen

Ein Thema von Theo1994 · begonnen am 16. Apr 2011 · letzter Beitrag vom 16. Apr 2011
 
Theo1994

Registriert seit: 16. Apr 2011
5 Beiträge
 
#6

AW: Fehler nach Schließen

  Alt 16. Apr 2011, 10:43
Ok:
Die Programmdatei:
Delphi-Quellcode:
program bewegen;

uses
  Forms,
  Eingabe in 'eingabe.pas{FormE},
  ubewegen in 'ubewegen.pas{Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TFormE, FormE);
  Application.Run;
  Application.Destroy; //mit Application.free kommt der gleiche Fehler
                         {ohne einem der beiden kommt zwar die Meldung nicht, aber das Programm erscheint auch nicht wieder in Delphi ohne Strg+F2 zu drücken (passiert nach den Meldungen auch nicht)}
end.
Die Unit vom ersten Form:
Delphi-Quellcode:
unit Eingabe;

interface

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

type
  TFormE = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    ScrollBar1: TScrollBar;
    Button1: TButton;
    Label5: TLabel;
    procedure ScrollBar1Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  FormE: TFormE;

implementation

{$R *.dfm}

procedure TFormE.ScrollBar1Change(Sender: TObject);
//...

procedure TFormE.Button1Click(Sender: TObject);
begin
  Application.CreateForm(TForm1,Form1); //Formular mit Spiel aufbauen

  Form1.Label1.Caption:=FormE.Edit1.Text; //Eingegebenen Name für Spieler 1 übergeben
  Form1.Label2.Caption:=FormE.Edit2.Text; //Eingegebenen Namen für Spieler 2 übergeben
  Form1.Label5.Caption:=IntToStr(FormE.ScrollBar1.Position); //Übergabe der Gewinnpunktzahl

  FormE.Destroy; //Eingabe-Formular schließen
  Form1.Show; //Spiel-Formular anzeigen

end;

end.
Und das Form1:
Delphi-Quellcode:
unit ubewegen;

interface

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

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Feld: TShape;
    Ball: TShape;
    Button2: TButton;
    EditTastenEingabe: TEdit;
    Schl2: TShape;
    Button1: TButton;
    Schl1: TShape;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Button4: TButton;
    Button3: TButton;

    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);
    procedure EditTastenEingabeKeyPress(Sender: TObject; var Key: Char);
    procedure Aus (Seite: Byte);
    procedure Button4Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure Angabe (Seite: Byte);
    procedure BallPos (x,y: Integer);


  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
      x1, y1: Integer; //Position des Balles zum Rechnen
      Durchmesser: Byte; //Durchmesser des Balles um ggf. einzustellen
      Hoch: Integer; //Bewegung des Balles nach oben (in Pixeln je Timer)
                                      //wenn negativ -> nach unten
      Rechts: Integer; //Bewegung des Balles nach rechts (in Pixeln je Timer)
                                      //wenn negativ -> nach links
      Sp1Name, Sp2Name: Shortstring; //Spielernammen
      Gewinnpkt: Word; //Spielstand, bei dem ein Spieler gewonnen hat
      Seite: Word; //Seitenangabe
      Speed: Byte; //Geschwindigkeit des Balles (in Pixeln je Timer)

implementation

{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
begin
  //Variable Durchmesser mit Durchmesser des Balles belegen
  Durchmesser:=Ball.Width;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
 //...
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 //noch leer, das wird der Neustart des Spiels
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 //noch leer, das wird Neues Spiel -> Aufruf FormE
end;


//----------------------------------------------------------------------
procedure TForm1.Timer1Timer(Sender: TObject); //zeitliche Schrittbestimmung des Balles
begin
 //... Verschiebung des Balles mit verschiedenen Prüfungen
end;

procedure TForm1.EditTastenEingabeKeyPress(Sender: TObject; var Key: Char);
begin
 //... Steuerung der Schläger
end;

procedure TForm1.Aus(Seite: Byte); //wenn der Ball hinter die Seitenlinie kommt
begin
  //... Einsetzen des Balls
end;



procedure TForm1.Button4Click(Sender: TObject); (Beenden-Button)
begin
  Application.Terminate;
end;

procedure TForm1.Angabe (Seite: Byte);
begin
  //... neue Angabe des Balles
end;

procedure TForm1.BallPos(x,y: Integer);
begin
  Ball.Left:=x;
  Ball.Top:=y;
end;

end.

Ich hoffe, ich habe alles unwichtige rausgestrichen und alles wichtige drin gelassen...

@DeddyH: Diese beiden Dinge habe ich noch nie gehört... Also unwahrscheinlich...

Ich habe auch nichts gegen das rausschmeißen des Beenden-Buttons, aber mein Lehrer will den immer mit haben...

Danke auch schonmal für die schnellen Kommentare.
Theo1994

Geändert von Theo1994 (16. Apr 2011 um 10:45 Uhr)
  Mit Zitat antworten Zitat
 


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 03:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz