AGB  ·  Datenschutz  ·  Impressum  







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

timer zu langsam?

Ein Thema von Pseudemys Nelsoni · begonnen am 28. Dez 2003 · letzter Beitrag vom 29. Dez 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

timer zu langsam?

  Alt 28. Dez 2003, 19:19
hi,

Code:
canvas.Pixels[Random(form1.Width), Random(Form1.Height)] := clRed;
wenn ich das in einem timer habe, der den intervall 1 hat, einfüge und die Form etwas grösser ist, kommt zwar alle 0,015 sek ein punkt dazu, trotzdem ist das auf die dauer echt lahmarschig. wie bekomm ich das schneller hin?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Dagon

Registriert seit: 13. Jul 2003
505 Beiträge
 
Delphi 7 Professional
 
#2

Re: timer zu langsam?

  Alt 28. Dez 2003, 19:21
Willst du so den ganzen Bildschirm füllen?

[edit=sakura] Doppelpost ausradiert Mfg, sakura[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3

Re: timer zu langsam?

  Alt 28. Dez 2003, 19:23
jo, is nur zum testen, ich fange gerade erst mit canvas an, aber es muss doch auch schneller gehen oder?


EDIT: müsst ich mehrere timer nehmen?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von Mirilin
Mirilin

Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
 
Delphi 6 Professional
 
#4

Re: timer zu langsam?

  Alt 28. Dez 2003, 19:30


Ich glaube Timer-Intervall auf 1 runter bringt nichts - ich hab schön des öfteren gelesen, dass da irgendwo mal schluss ist . . .

mfg Tobias

Edit :
Philipp Frenzel aus den Delphi-Groups
Die kleinste Timerauflösung sollte unter W9x so um 52ms liegen, bei NT kann man AFAIK bis gut 10ms runtergehen.
Tobias
Die Physik ist für die Physiker eigentlich viel zu schwer.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#5

Re: timer zu langsam?

  Alt 28. Dez 2003, 19:41
jo, ich weiss, da ich aber nicht wusste wo "schluss" ist hab ich halt 1 genommen
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#6

Re: timer zu langsam?

  Alt 28. Dez 2003, 20:46
Zitat von Mirilin:

Edit :
Philipp Frenzel aus den Delphi-Groups
Die kleinste Timerauflösung sollte unter W9x so um 52ms liegen, bei NT kann man AFAIK bis gut 10ms runtergehen.
Sicher ?
Ich dachte das Minimum von ca. 50ms wäre Hardware bedingt
Tja, man lernt eben immer wieder...
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#7

Re: timer zu langsam?

  Alt 28. Dez 2003, 20:58
nimm doch einen eigenen Thread der ungefähr so aussieht:

Delphi-Quellcode:
while true do
  begin
  sleep(1);
  canvas.Pixels[Random(form1.Width), Random(Form1.Height)] := clRed;
  end;
Oder du lässt das sleep einfach ganz weg!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#8

Re: timer zu langsam?

  Alt 28. Dez 2003, 21:28
Kannst ja auch mal mehrer Pixel pro Timerinterval zeichnen, vielleicht hilft das ja was.

Delphi-Quellcode:
Procedure TForm1.Timer1Timer(Sender: TObject);
  Var I: Integer;

  Begin
    For I := 1 to 20 do
      Canvas.Pixels[Random(ClientWidth), Random(ClientHeight)] := clRed;
  End;
Statt Width und Height solltest du ClientWidth und ClientHeight verwenden, das gibt die richtige Größe des Canvas an. Bei Width und Height liegen einige gezeichnete Pixel außerhalb des Canvas und es dauert länger, bis alles ausgefüllt wird.
Wenn du es dann noch schafst, das keine Pixel doppelt gezeichnet werden, geht es noch mal viel schneller.

Weitere Timer zu erstellen wird nichts helfen, bei so kurzen Intervallen dürften die sich gegenseitig ausbremsen.

[add]
Ein Thread wird wohl auch nicht viel bringen, die ganze Syncronisation dürfte den Vorteil eines Thread's total vernichten.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von SleepyMaster
SleepyMaster

Registriert seit: 18. Mai 2003
634 Beiträge
 
#9

Re: timer zu langsam?

  Alt 28. Dez 2003, 22:15
@himitsu
was willst du denn alles Syncronisieren???

Hab mal ein Beispiel angehangen um zu zeigen wie effektiv Threads sind.
Angehängte Dateien
Dateityp: zip threads.zip (218,1 KB, 25x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#10

Re: timer zu langsam?

  Alt 28. Dez 2003, 22:25
Also, ich hab mir deinen Quellcode nicht erst angegukt.

Hab aber mal schnell dein Prog zum abstürzen gebracht - Dauer etwa 1-2 Sekunden.

Hab das Programmfenster einfach mal schnell nach unten (teilweise aus dem Bildschirm raus) und gleich wieder nach oben verschoben.

Und promt ist dein Thread mit dem Refresh des Formulars in konflickt getreten.

Deshalb muß da eine Synchronisation rein !!!
Miniaturansicht angehängter Grafiken
ohnesyncro.jpeg  
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:09 Uhr.
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