AGB  ·  Datenschutz  ·  Impressum  







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

TTimer zur Laufzeit erstellen/entfernen

Ein Thema von Rastaman · begonnen am 20. Feb 2005 · letzter Beitrag vom 21. Feb 2005
 
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#1

TTimer zur Laufzeit erstellen/entfernen

  Alt 20. Feb 2005, 20:02
Hallo allerseits
Also Folgendes.
Ich habe ein Programm welches mit einer ziemlich langen for Schleife arbeitet.
Das dumme ist natürlich jetzt, dass man die Form in der Zeit nicht kontrollieren kann bzw. überhaupt nichts machen kann.
Also hab ich mir gedacht nehm ich 100 Timer.
Folgender Code :
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    TimerArray: Array of TTimer;
    procedure Count(Sender: TObject);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Timer: TTimer;

implementation

{$R *.dfm}

procedure TForm1.Count(Sender: TObject);
begin
  Label1.Caption := IntToStr(StrToInt(Label1.Caption) + 1)
end;
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  SetLength(TimerArray,100);
  For i := 1 to 100 do begin
    TimerArray[i] := TTimer.Create(self);
    With TimerArray[i] do begin
      Enabled := True;
      Interval := 1;
      OnTimer := Count;
    end;
  end;
  Button1.Enabled := False;
  Button2.Enabled := True;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  i: Integer;
begin
  SetLength(TimerArray,100);
  For i := 1 to 100 do
    TimerArray[i].Enabled := False;
  For i := 1 to 100 do
    TimerArray[i].Free;
  Button1.Enabled := True;
  Button2.Enabled := False;
end;
Natürlich ist der Sinn nicht die Zahl im Label zu erhöhen. Die eigentlich Funktion kommt da später erst
Das Starten der Timer funktioniert wunderbar, aber wenn ich auf Stop(Button2) klicke kommt folgender Fehler:

Code:
Access Violation at Adress 00401C52 in Module 'Project2.exe'. Write of adress 004276A4
Was mach ich da falsch?
Chuck Norris has counted to infinity ... twice!
  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 02:27 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