![]() |
Threads!? Wie geht das?
Hi,
also da ich verdammt lange kein Delphi mehr gemacht habe (mit PHP kann man mehr Geld machen ;) ), brauch ich mal wieder ein bisschen Hilfe. Also ich hab n Timer der alle 2 Sekunden einen String vom Server holt per idhttp.get. Nun hackt das ein bisschen wenn ich den holen lasse. Grade bei einer langsameren Internetanbindung nicht so toll ;) Nun gibts da ja die wunderbaren Threads, wobei allerdings kein beispiel oder tut bei mir funktioniert :) Hat vielleicht Jemand so ein Idiotensicheres Beispiel wie ich das mache? Brauch Delphi eigendlich so gut wie nie in letzter Zeit deshalb hab ich auch nicht die Lust/die Zeit mich da groß einzulesen. Nervt halt nur n bisschen wenn alles alle 2 sek. hängt ;) Danke schonmal. |
Re: Threads!? Wie geht das?
Vielleicht hilft dir das Thread-Tutorial auf
![]() |
Re: Threads!? Wie geht das?
oder du schaust dir Luckies Ping-Programm (Open-Source) an, das gerade auch hier läuft ;)
![]() |
Re: Threads!? Wie geht das?
Hmm...ja.
Nur müsste ich da 45 Seiten lesen (anders gehts ja nicht wegen dem Zusammenhang). Und die zeit hab ich leider im Moment nicht. (Auch wenn ich sie gerne hätte :? ) Edit: Ach der Luckie macht aber immer alles nonVCL. (der hat ja auch n Plan von Delphi ;) ) Edit II: Was is denn mit diesem idthreadmanager und co? |
Re: Threads!? Wie geht das?
Hi
Dann bemühe eben die Suche, da findest du wirklich sehr viel, u.a. auch schöne Beispiele, wie ![]() |
Re: Threads!? Wie geht das?
hey...es geht :)
Also der thread anscheinend. Nun hab ich das mal kopiert und mein Zeugs eingefügt: (Kleiner ausschnitt)
Delphi-Quellcode:
Er macht zwar das Update...aber es hackt immer noch alle 2 sek. :(
procedure TGetRemoteVersionThread.UpdateCaption;
var new:string; begin with Form1 do begin /// //chat.Lines.Clear; new := idhttp1.Get(URL+'/admin.php?nick='+nick+'&pw='+pw+'&go=getchat'+'&casenick='+casenick+'&lastid='+lastid); new := StringReplace(new, '###', #13#10, [rfReplaceAll]); if (new = '') OR (new = ' ') then begin end else begin chat.Lines.Add(new); end; lastid := idhttp1.Get(URL+'/admin.php?nick='+nick+'&pw='+pw+'&go=getlastid'+'&casenick='+casenick); /// end; end; // ============================================================================= procedure TGetRemoteVersionThread.Execute; begin Synchronize(UpdateCaption); end; //////////////////////////////////////////////////////////////////// procedure TForm1.Timer2Timer(Sender: TObject); var Thread: TGetRemoteVersionThread; begin Thread := TGetRemoteVersionThread.Create(True); Thread.FreeOnTerminate := True; Thread.Resume; end; |
Re: Threads!? Wie geht das?
wie wäre es wenn du einmal den thread erstellst und der alle 2 Sekunden von selbst abruft?
erscheint mir logischer... |
Re: Threads!? Wie geht das?
oder terminier den thread ...
du erstellst ihn aber er bleibt im Arbeitsspeicher mach das ma ne 1/2 std je nachdem wie groß dein thread ist kann das ziemlich merkwürdig enden |
Re: Threads!? Wie geht das?
Und wenn mir jetzt noch einer sagt wie wär ich euch echt dankbar.
PS: Aber verursacht das das hacken des Programms? |
Re: Threads!? Wie geht das?
das darf eigentlich nicht passieren..
hängt jedoch von deinem thread ab
Delphi-Quellcode:
Thread.Terminate;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:46 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