![]() |
Re: Timer wird zu langsam
Verdammt, jetzt habe ich den obigen Beitrag editiert, anstatt einen neuen zu schreiben :wall:
Naja, schau es dir im vorletzten Post (von hier aus) an! |
Re: Timer wird zu langsam
Sry aber irgendwie kommen da ziemlich viele Fehler, wo muss das type hin?
[Pascal Hinweis] Unit3.pas(39): H2077 Auf 'XORCrypt' zugewiesener Wert wird niemals benutzt [Pascal Fehler] Unit3.pas(67): E2029 '=' erwartet, aber Bezeichner 'Create' gefunden [Pascal Fehler] Unit3.pas(67): E2029 '=' erwartet, aber ',' gefunden [Pascal Fehler] Unit3.pas(67): E2029 '=' erwartet, aber ')' gefunden [Pascal Fehler] Unit3.pas(69): E2029 '=' erwartet, aber 'PROCEDURE' gefunden [Pascal Fehler] Unit3.pas(70): E2070 Unbekannte Direktive: 'private' [Pascal Fehler] Unit3.pas(71): E2070 Unbekannte Direktive: 'FPassword' [Pascal Fehler] Unit3.pas(76): E2003 Undefinierter Bezeichner: 'TThread' [Pascal Fehler] Unit3.pas(76): E2029 '=' erwartet, aber ',' gefunden [Pascal Fehler] Unit3.pas(76): E2029 '=' erwartet, aber ')' gefunden [Pascal Fehler] Unit3.pas(78): E2075 Diese Form des Methodenaufrufs ist nur in Methoden von abgeleiteten Typen erlaubt [Pascal Fehler] Unit3.pas(79): E2003 Undefinierter Bezeichner: 'FreeOnTerminate' [Pascal Fehler] Unit3.pas(80): E2003 Undefinierter Bezeichner: 'FPassword' [Pascal Fehler] Unit3.pas(81): E2003 Undefinierter Bezeichner: 'FQuelle' [Pascal Fehler] Unit3.pas(82): E2003 Undefinierter Bezeichner: 'FZiel' [Pascal Fehler] Unit3.pas(85): E2004 Bezeichner redefiniert: 'TThread' [Pascal Fehler] Unit3.pas(87): E2003 Undefinierter Bezeichner: 'FPassword' [Pascal Fehler] Unit3.pas(87): E2003 Undefinierter Bezeichner: 'FQuelle' [Pascal Fataler Fehler] Project3.dpr(5): F2063 Verwendete Unit 'Unit3.pas' kann nicht compiliert werden |
Re: Timer wird zu langsam
Du musst einen Extra Thread für DEINE Funktion ableiten, erzeugen und ausführen...
Nach dem Erzeugen wird automatisch Execute ausgeführt, wohinein Du Deine Anweisungen schreiben kannst. In Create kannst Du direkt Objekte oder andere Variablen übergeben. Im Beispiel wird ein Objekt übergeben und dessen dafür bestimmte Methode vom Thread ausgeführt. Dein Programmablauf wird dadurch (quasi) nicht beeinflusst. Der Thread erledigt die Aufgabe einfach nebenher und Dein Programm läuft normal weiter. Der Thread arbeitet sozusagen wie ein eigenständiges Programm parallel, nur dass er den selben Speicherbereich benutzt. Deshalb darf man nicht "wahllos" in diese Bereiche schreiben, da es sonst Konflikte mit dem Programm geben kann (Syncronisation). (... so jedenfalls, wie ich das verstanden habe)
Delphi-Quellcode:
TMyThread = class(TThread)
private FMyVar: TMyVar; protected procedure Execute; override; public constructor Create(MyVar: TMyVar); end; ... procedure MyThreadStart(MyVar: TMyVar); var MyThread: TMyThread; begin MyThread := TMyThread.Create(MyVar); end; ... { TMyThread } constructor TMyThread.Create(MyVar: TMyVar); begin FMyVar := MyVar; inherited Create(False); end; procedure TMyThread.Execute; begin FMyVar.DoSomethingAsThread; end; stahli |
Re: Timer wird zu langsam
[edit] Bereits korrigiert :zwinker: [/edit]
|
Re: Timer wird zu langsam
Ui, da wraen aber ein paar Fehler drin.
|
Re: Timer wird zu langsam
Und was muss ich verändern damit die Fehler weg sind, sirius?
|
Re: Timer wird zu langsam
Ich hab noch ein Edit gemacht :zwinker:
|
Re: Timer wird zu langsam
Da kommen bei mir aber leider die gleichen Fehler, wo muss denn das type hin, vor die Procedur? Wenn nicht hab ichwas falsch gemacht :)
|
Re: Timer wird zu langsam
Jaaa, da waren noch ein Semikolonfehler,...
Jetzt dürfte es Copy&Paste fertig sein. |
Re: Timer wird zu langsam
Zitat:
Delphi-Quellcode:
Wenn dein Timer (der die Grafik steuert?) langsamer wird, könnte es daran liegt, das das TimerEvent nicht ausgeführt wird, weil dein Programm grad mit etwas anderen beschäftigt ist.
Application.ProcessMessages;
ProcessMessages bewirkt, dass das Programm erst mal alle Messages die das Programm erhalten hat (darunter auch das TimerEvent), abarbeitet, bevor es im eigentlichen Code weiter macht. Bei einer Suche bietet sich so was an. Oder man löst das mit einem Thread, wie oben beschrieben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:39 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