Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Form wird nach dem compilieren nicht angezeigt (https://www.delphipraxis.net/166829-form-wird-nach-dem-compilieren-nicht-angezeigt.html)

fox67 1. Mär 2012 18:09


Form wird nach dem compilieren nicht angezeigt
 
Hallo
Seit kurzem hab ich wieder angefangen mit Delphi zu programmieren und probier zur Zeit hauptsälich eigenen Klassen zu programmieren und so weiter
Bei diesem Program wollte ich auch gleich mal die repeat Schleife ausprobieren
Code:
type
  TPunkt = class(TObject)
    private
    { Private-Deklarationen }
     rRichtung : Integer;
     rhoehe : Integer;
     rpunkt : TPoint;
     rschliessen : Boolean;
//     procedure ermmittlehöhe();
     public
    { Public-Deklarationen }
    procedure Bewegung();

  end;


  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure onclose(Sender: TObject; var Action: TCloseAction);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private-Deklarationen }
    punkt : TPunkt;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{procedure TPunkt.ermmittlehöhe;
begin
  rhoehe := form1.ClientHeight;
  Bewegung();
end;}

procedure TPunkt.Bewegung();

begin
 repeat
 case rRichtung of
 1:
  begin
    rpunkt.Y:= rpunkt.Y +1;
    if rpunkt.Y = rhoehe then rRichtung := 2;

  end;
 2: begin
    rpunkt.Y:= rpunkt.Y -1;

    if rpunkt.Y = 0 then rRichtung := 1;

  end;

 end;
  until  rschliessen = true;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 punkt := TPunkt.Create;
 //punkt.ermmittlehöhe;
 punkt.rpunkt.Y:= 0;
 punkt.rRichtung:=1;
 punkt.rhoehe:=form1.ClientHeight;
 punkt.rschliessen := false;
 punkt.Bewegung;

 end;

procedure TForm1.onclose(Sender: TObject; var Action: TCloseAction);
begin
punkt.Free;
punkt.rschliessen := true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin

showmessage(inttostr(punkt.rpunkt.Y));
end;

end.
Wenn ich allerdings compelieren wil erscheint das Fenster meines Programmes nicht. Warum kann ich mir denken doch wie kann man des verhindern. (Das Programm ist noch nicht fertig ich wollte es nur mal testen :))

Phoenix 1. Mär 2012 18:17

AW: Form wird nach dem compilieren
 
Warum denkst Du denn wird das Formular nicht angezeigt?

Und was könntest Du Dir für Deinen Grund als Alternativmöglichkeiten vorstellen?

Spoiler:
Noch bevor das Formular das allererste mal gezeichnet wird startest Du eine Endlosschleife.
Die lässt dem Formular keine Möglichkeit mehr, die Nachrichten zu verarbeiten die es Zeichnen würden. Ein simples Applicatio.ProcessMessages; würde reichen, macht die Schleife aber wieder rotzlahm.

Popov 1. Mär 2012 18:20

AW: Form wird nach dem compilieren
 
Was steht in der Projektdatei (Menu Projekt > Quelltext anzeigen)?

fox67 1. Mär 2012 18:28

AW: Form wird nach dem compilieren
 
Code:
program Project1;

uses
  Forms,
  test in 'test.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
@Popov das ist der Code den du meinst oder?

@Phoenix ich glaub da ic die Procedure mit der Schleife direct in die oncreate procedure reingeschrieben hab das die Form erst dann erstellt wird wenn die Schleife beendet wurde

Phoenix 1. Mär 2012 18:32

AW: Form wird nach dem compilieren
 
Zitat:

Zitat von fox67 (Beitrag 1153928)
@Phoenix ich glaub da ic die Procedure mit der Schleife direct in die oncreate procedure reingeschrieben hab das die Form erst dann erstellt wird wenn die Schleife beendet wurde

Genau. Jetzt markier mal den Rest von meinem Beitrag oben - hab die Antwort dort weiss auf weiss geschrieben ;-) Dann siehst Du einen möglichen Lösungsansatz, der zum testen mal ausreicht.

himitsu 1. Mär 2012 18:50

AW: Form wird nach dem compilieren
 
Rate mal, warum dein Delphi einen Debugger hat?
Denn kann man doch tatsächlich dafür benutzen, um zu schauen warum etwas nicht passiert, bzw. was gerade passiert.


PS: [DELPHI]-Tags haben auch ihre Vorteile.
Und die Überschrift ... Was wird denn?

fox67 1. Mär 2012 18:56

AW: Form wird nach dem compilieren
 
Danke jetzt wird zumindest mal das messagefeld angezeigt
Zitat:

Genau. Jetzt markier mal den Rest von meinem Beitrag oben - hab die Antwort dort weiss auf weiss geschrieben Dann siehst Du einen möglichen Lösungsansatz, der zum testen mal ausreicht.
Den trick mit der weissen Schrift merk ich mir der ist nicht schlecht:-D

fox67 1. Mär 2012 18:58

AW: Form wird nach dem compilieren
 
Zitat:

Und die Überschrift ... Was wird denn?
OH das ist mir gar nich aufgefallen wahrscheinlich hab ich zu schnell getippt oder die überschrift wahr zulang :-D

fox67 1. Mär 2012 19:03

AW: Form wird nach dem compilieren
 
Wie kann ich den die Schleife verlangsamen?

Perlsau 1. Mär 2012 19:12

AW: Form wird nach dem compilieren
 
Zitat:

Zitat von fox67 (Beitrag 1153941)
Wie kann ich den die Schleife verlangsamen?

Wieso glaubst du, daß die Verlangsamung einer Endlos-Schleife, die dein Programm daran hindert, seine Form zu zeichnen, dein Problem löst? Endlos-Schleife ist Endlos-Schleife, ob nun langsam oder schnell ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:17 Uhr.
Seite 1 von 4  1 23     Letzte »    

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