Delphi-PRAXiS
Seite 2 von 4     12 34      

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 19:14

AW: Form wird nach dem compilieren
 
nein das mit dem Form Zeichnen ist gelöst aber die Schleife ist zu scnel und erfüllt deshalb nicht ihr Ziel

himitsu 1. Mär 2012 19:15

AW: Form wird nach dem compilieren
 
Eine langsamere (Endlos)Schleie braucht länger, also eine Schnelle. :lol:

fox67 1. Mär 2012 19:25

AW: Form wird nach dem compilieren
 
ja baer wie verlangsamt man eine endlos schleife????

Perlsau 1. Mär 2012 19:26

AW: Form wird nach dem compilieren
 
Zitat:

Zitat von fox67 (Beitrag 1153944)
nein das mit dem Form Zeichnen ist gelöst aber die Schleife ist zu scnel und erfüllt deshalb nicht ihr Ziel

Wie sieht denn nun deine Schleife aus?

Du stellst hier eine völlig neue Frage. Besser, du erstellst dafür einen neuen Thread. Es erleichtert das Auffinden von Themen enorm, wenn in jedem Thread nur jeweils eine Frage behandelt wird.

himitsu 1. Mär 2012 19:29

AW: Form wird nach dem compilieren
 
Delphi-Referenz durchsuchenSleep?
Aber schau dir besser mal Delphi-Referenz durchsuchenTTimer an.

@Perlsau: Wozu ein Delphi-Referenz durchsuchenTThread? (vorallem wenn man sich TPunkt.Bewegung so ansieht)

Perlsau 1. Mär 2012 19:34

AW: Form wird nach dem compilieren
 
Zitat:

Zitat von himitsu (Beitrag 1153949)
@Perlsau: Wozu ein Delphi-Referenz durchsuchenTThread? (vorallem wenn man sich TPunkt.Bewegung so ansieht)

Nein, ich meinte nicht, er solle die Schleife in einen Thread auslagern, sondern im Forum ein neues Thema erstellen, wenn er eine neue Frage stellt.

fox67 1. Mär 2012 19:36

AW: Form wird nach dem compilieren
 
habs jetzt mit slepp gemacht nur vergessen ins forum zu schreiben trotzdem danke :)

Perlsau 1. Mär 2012 19:36

AW: Form wird nach dem compilieren
 
Zitat:

Zitat von himitsu (Beitrag 1153945)
Eine langsamere (Endlos)Schleie braucht länger, also eine Schnelle. :lol:

:lol: Wenn du jetzt noch verrätst, wozu eine langsame Endlos-Schleife länger braucht, wird's richtig lustig :stupid:

Ich würde mal raten, du meinst, sie bräuchte länger, bis der Stack überläuft ...

Perlsau 1. Mär 2012 19:38

AW: Form wird nach dem compilieren
 
Zitat:

Zitat von fox67 (Beitrag 1153951)
habs jetzt mit slepp gemacht nur vergessen ins forum zu schreiben trotzdem danke :)

Dürfen wir mal deine jetzt nicht mehr endlos laufende Schleife sehen?

fox67 1. Mär 2012 20:32

AW: Form wird nach dem compilieren
 
So jetzt hab ich mein Program beihnah zu ende Programmiert und ein Fehler mit wahrscheinlich gleicher ursache tritt auf.
Code:
unit test;

interface

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

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;
    Timer2: TTimer;
    Label1: TLabel;
    Shape1: TShape;
    Button1: TButton;
    Timer3: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure onclose(Sender: TObject; var Action: TCloseAction);
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Timer3Timer(Sender: TObject);
  private
    { Private-Deklarationen }
    punkt : TPunkt;
    sh  : array of TShape;
    shpos : array of TPunkt;
    anzahl : integer;
  public
    { Public-Deklarationen }
    procedure erstellen();
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

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

procedure TPunkt.Bewegung();
var
i : integer;
begin
 form1.Timer2.Enabled :=false;
 repeat
  case rRichtung of
 1:
  begin
    rpunkt.Y:= rpunkt.Y +3;
    if rpunkt.Y > rhoehe-33 then rRichtung := 2;

    Sleep(25);
  end;
 2: begin
    rpunkt.Y:= rpunkt.Y -3;

    if rpunkt.Y < 0 then rRichtung := 1;
    Sleep(25);
  end;

 end;
  Application.ProcessMessages;
  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;
 timer2.Enabled:=true;

  end;

procedure TForm1.onclose(Sender: TObject; var Action: TCloseAction);
var
index :word;
begin
punkt.Free;
punkt.rschliessen := true;
for index := 0 to anzahl do
sh[index].Free;
shpos[index].Free;
end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin
shape1.Top:= punkt.rpunkt.Y;
label1.Caption:=inttostr(punkt.rpunkt.Y);
end;
                                     
procedure TForm1.Timer2Timer(Sender: TObject);
begin
punkt.Bewegung ;
timer3.Enabled:=true;
timer2.Enabled :=false;
end;

procedure TForm1.Timer3Timer(Sender: TObject);
var index : word ;
begin
for index := 0 to anzahl do
  sh[index].Top := shpos[index].rpunkt.Y;
//  sh2[index].Bewegung;
end;


procedure TForm1.Button1Click(Sender: TObject);
var X: Integer;
begin
  x:= anzahl+1;
  setLength(sh, x);
  setLength(shpos, x);
  erstellen();
end;

procedure TForm1.erstellen;
begin
  shpos[anzahl]:= TPunkt.Create;
  sh[anzahl]:= TShape.Create(self);
  sh[anzahl].Parent:= self;
  sh[anzahl].Brush.Color:= clred;
  sh[anzahl].Shape:= stcircle;
  sh[anzahl].Top :=shpos[anzahl].rpunkt.Y;
  sh[anzahl].Left := random(200);
  sh[anzahl].Height:= 33;
  sh[anzahl].Width:= 33;
  shpos[anzahl].Bewegung();
end;
end.
wenn ich jetzt auf den button klick um mir den ersten kreis zu erstellen bewegt sich nichts weder der kreis noch die shapevom timer1 (die nur zur kontrolle dient)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:41 Uhr.
Seite 2 von 4     12 34      

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