Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   timer (https://www.delphipraxis.net/154526-timer.html)

Luckie 15. Sep 2010 09:13

AW: timer
 
Du hast kein Konsolenprojekt, deswegen kommt der Fehler bei Writeln.

arcon 15. Sep 2010 11:09

AW: timer
 
hallo miteinander,

ich hab es jetzt herausgefunden, wie man einen timer erstellt .. und endlich auch die funktionsweise verstanden ..

dank diesem code:

Code:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
PROCEDURE ZaehleEinsHoch(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1 : TForm1;
Timer1: TTimer;
k    : INTEGER;
implementation
{$R *.DFM}
PROCEDURE TForm1.ZaehleEinsHoch(Sender: TObject);
VAR s: STRING;
begin
Inc(k);
Str(k,s);
Label1.Font.Color := Random($FFFFFF);
Label1.Caption   := s
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
(* Timer1 intantiieren *)
Timer1 := TTimer.Create(Self);
(* Eigenschaften von Timer1 festlegen *)
(* (hier nur "Interval")             *)
Timer1.Interval := 500;
(* Ereignisverknüpfung für Timer1 festlegen *)
(* (hier nur "OnTimer")                    *)
Timer1.OnTimer := ZaehleEinsHoch;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
(* Timer1 lebewohl sagen *)
Timer1.Destroy
end;
begin
k := 0
end.
Anmerkung für Anfänger: Ihr müsst in den Eigenschaften der Form (links) folgende einstellungen vornehmen: OnCreate auf Create setzen und OnDestroy auf Destroy setzen.

damit dürfte dann das programm laufen !

nun zu meiner frage ..

wie binde ich so einen timer in einen constructor ein ?
und wie in einen destructor ?

danke für die tipps !

MacGuyver 15. Sep 2010 13:15

AW: timer
 
:shock:

Anmerkung für Anfänger: Bei Quelltexten sollte eine angemessene Einrückung vorgenommen werden!

Wer will das denn freiwillig anschauen?

arcon 15. Sep 2010 13:19

AW: timer
 
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
  Label1: TLabel;
  PROCEDURE ZaehleEinsHoch(Sender: TObject);
  procedure FormCreate(Sender: TObject);
  procedure FormDestroy(Sender: TObject);

private
{ Private-Deklarationen }

public
{ Public-Deklarationen }

end;

var
  Form1 : TForm1;
  Timer1: TTimer;
  k    : INTEGER;

implementation
{$R *.DFM}

PROCEDURE TForm1.ZaehleEinsHoch(Sender: TObject);
VAR s: STRING;
begin
  Inc(k);
  Str(k,s);
  Label1.Font.Color := Random($FFFFFF);
  Label1.Caption  := s
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  (* Timer1 intantiieren *)
  Timer1 := TTimer.Create(Self);
  (* Eigenschaften von Timer1 festlegen *)
  (* (hier nur "Interval")            *)
  Timer1.Interval := 500;
  (* Ereignisverknüpfung für Timer1 festlegen *)
  (* (hier nur "OnTimer")                   *)
  Timer1.OnTimer := ZaehleEinsHoch;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  (* Timer1 lebewohl sagen *)
  Timer1.Destroy
end;

begin
  k := 0
end.
besser so ?

MacGuyver 15. Sep 2010 15:26

AW: timer
 
Zitat:

ich hab es jetzt herausgefunden, wie man einen timer erstellt ..
Tut mir leid, den Eindruck machst du irgendwie nicht.:zwinker:

Wie, in Constructor und Destructor?:gruebel:

Den Timer kann man auch auf das Formular ziehen und von dort alles tun.

In einer Konsole kannst du nicht mit dem Timer arbeiten. Das System verschickt eine Botschaft für das Auslesen und eine Konsole kann keine Botschaft empfangen. (Wenn es doch geht, würde ich gerne wissen wie.)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:40 Uhr.
Seite 2 von 2     12   

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