Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Timer und Rechner-Belastung? (https://www.delphipraxis.net/5791-timer-und-rechner-belastung.html)

Niko 23. Jun 2003 12:37

@Minz:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Memo1: TMemo;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    FTimeOffsets: array[0..1000] of Byte;
    FTimeElapsed: array[0..1000] of Byte;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Timer1Timer(Sender: TObject);
var
  i: Integer;
begin
  for i := Low(FTimeOffsets) to High(FTimeOffsets) do
  begin
    if FTimeElapsed[i] = FTimeOffsets[i] then
    begin
      FTimeElapsed[i] := 0;
      // irgend etwas machen:
      Memo1.Lines.Add('Virtueller Timer ' + IntToStr(i));
    end
    else
      Inc(FTimeElapsed[i]);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  Randomize;
  for i := Low(FTimeOffsets) to High(FTimeOffsets) do
    FTimeOffsets[i] := Random(256);
end;
Bei diesem Code brauchst du nur eine Timer-Komponente und kannst beliebig viele "virtuelle" Timer erzeugen, die in verschiedenen Abständen auslösen.

Minz 24. Jun 2003 01:37

Liste der Anhänge anzeigen (Anzahl: 1)
sprich ich kann das Prob nur mit nem neuen Betriebssystem umgehen? :(


verdammich aber auch...

Ob du da mal die Grenze austesten kannst? Ich schick dir gerne

auch das Programm zu, dann kannst du da direkt die Anzahl

eintippseln (direkt im Quellcode :mrgreen: )

Weil des würd ich gerne Wissen, bevor ich jetzt erst ein neues

Betriebssystem aufspiele. War sonst mit Win98 eigentlich
zufrieden.

Gruß Minz

Minz 24. Jun 2003 01:40

ah danke Niko, habs zu spät gelesen...ganz verstehen tu ich das ding

allerdings noch nicht...

werds mir nochmal anschauen...

------------

Achso, kapiert, allerdings durchläufst du dann bei jedem mal

die gesamte Liste der virtuellen Timer! Das wollte ich eigentlich

umgehen, weil ich sehr viele Timer verwenden will.

Niko 24. Jun 2003 19:47

Eine andere Möglichkeit, die virtuellen Timer mit unterschiedlichen Abständen aber regelmäßig auslösen zu lassen wüsste ich jetzt nicht...

Allerdings denke ich, dass der einfache Vergleich und das Hochzählen des Wertes auf aktuellen Rechnern auch bei 20000 oder mehr Schleifendurchläufen kein Problem darstellen sollte - und wahrscheinlich sogar ressourcenschonender ist als das Erzeugen von 20000 echten Timern.

Christian Seehase 24. Jun 2003 20:35

Moin Minz,

falls denn die Frage nicht zu indiskret wird ;-)

Wozu brauchst Du eigentlich so viele Timer?


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:01 Uhr.
Seite 4 von 4   « Erste     234   

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