Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Laufschrift hängt (https://www.delphipraxis.net/99485-laufschrift-haengt.html)

SaFu 13. Sep 2007 13:50

Re: Laufschrift hängt
 
Die sollen einfach nacheinander geladen werden so wie bei einer dia show

Cyberbob 13. Sep 2007 14:25

Re: Laufschrift hängt
 
Wenn du einen Timer verwendest, bleibt er für die Zeit des Ladens mal kurz stehen. Slebst wenn dein Code innderhalb des timer in einm anderen Thread läuft, der Timer tut dies nicht!

SaFu 13. Sep 2007 14:27

Re: Laufschrift hängt
 
??? hä verstehe ich jetzt nicht ganz also bleibt es beim timer stehen hat noch nie einer dieses Problem gehabt

SaFu 16. Sep 2007 19:54

Re: Laufschrift hängt
 
ah jetzt hab ichs gerafft war anscheiend den einen tag zu müde.

also wie könnte ich es lösen das es beim laden nicht mehr hängt wenn es mit dem timer nicht geht

SirThornberry 16. Sep 2007 20:14

Re: Laufschrift hängt
 
Die Festplatte ist eine der langsamsten Komponenten eines PC. Wenn du die Bilder immer wieder von der Festplatte lädst dauert das ewig. Lade die Bilder bei Programmstart in den Arbeitsspeicher und lade die Bilder dann von dort. Oder lade das Bild innerhalb eines Threads von der Festplatte und packe es dann syncronisiert in die Darstellungskomponente.

SaFu 16. Sep 2007 20:16

Re: Laufschrift hängt
 
Das mit dem Thread wollte ich ja versuchen aber wie du ja oben im code siehst müsste ich dan den Thread auch wieder im timer reinsetzen und das geht doch nicht oder?

SirThornberry 16. Sep 2007 20:29

Re: Laufschrift hängt
 
doch, wer sollte dich davon abhalten im OnTimer einen Thread zu erzeugen? Allerdings ist es quatsch.
Du kannst auch einfach im Thread ständig prüfen ob es wieder zeit ist:
Delphi-Quellcode:
llastRun := GetTickCount;
repeat
  lTime := GetTickCount();
  if (llastRun + 5000 < lTime) then
  begin
    //DoWhatYouWant (load picture and syncronize to show it)
    llastRun := lTime;
  end;
  sleep(50); //um die CPU-Last gering zu halten, wir müssen ja die Schelife nicht übermäßig oft durchlaufen
until Self.Terminated;

SaFu 16. Sep 2007 20:32

Re: Laufschrift hängt
 
könnte ich das ungefähr so machen habe keine anhnung von thread

den code hatte wir mal in der schule angeschnitten

Delphi-Quellcode:
function lauf() :integer;
var x :integer;
begin
 müsste hir das laden der fils rein????
end;

procedure TForm1.Button2Click(Sender: TObject);
Var ThreadID :Dword;
begin
  CreateThread(nil, 0, addr(lauf), nil, 0, ThreadID); // win Api Funktion
end;

SaFu 16. Sep 2007 21:10

Re: Laufschrift hängt
 
Zitat:

Zitat von SirThornberry
doch, wer sollte dich davon abhalten im OnTimer einen Thread zu erzeugen? Allerdings ist es quatsch.
Du kannst auch einfach im Thread ständig prüfen ob es wieder zeit ist:
Delphi-Quellcode:
llastRun := GetTickCount;
repeat
  lTime := GetTickCount();
  if (llastRun + 5000 < lTime) then
  begin
    //DoWhatYouWant (load picture and syncronize to show it)
    llastRun := lTime;
  end;
  sleep(50); //um die CPU-Last gering zu halten, wir müssen ja die Schelife nicht übermäßig oft durchlaufen
until Self.Terminated;

wie könnte ich denn deine code in meinen einbauen von welchem typ ist den llastRun

turboPASCAL 16. Sep 2007 21:46

Re: Laufschrift hängt
 
Zitat:

Zitat von fuknersascha
wie könnte ich denn deine code in meinen einbauen

Dazu musstt du in Delphi, wenn ich das Gummibärchen richtig verstanden habe einen Thread erzeugen.
Dadurch sparst du dir einen Timer. Siehe dazu Hier im Forum suchenTThread

Zitat:

Zitat von fuknersascha
... von welchem typ ist den llastRun

Setz deinen Cursor in Delphi auf GetTickCount und drück F1.
Im Falle das dort DWort steht kannst du Cardinal verwenden ;)


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

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