Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Threads!? Wie geht das? (https://www.delphipraxis.net/65724-threads-wie-geht-das.html)

Neuni 21. Mär 2006 11:37

Re: Threads!? Wie geht das?
 
Auch schon probiert...das geht aber net :(
Zitat:

[Error] Unit1.pas(564): Incompatible types: 'TComponent' and 'TGetRemoteVersionThread'
[Fatal Error] Project1.dpr(6): Could not compile used unit 'Unit1.pas'

Angel4585 21. Mär 2006 11:39

Re: Threads!? Wie geht das?
 
versuchs mal mit "nil" sollte gehen

Neuni 22. Mär 2006 17:06

Re: Threads!? Wie geht das?
 
Hmm...immer noch alle 2 sek :(
Delphi-Quellcode:
procedure TGetRemoteVersionThread.UpdateCaption;
var new:string;
getit:Tidhttp;
begin
  with Form1 do
  begin

///

getit := Tidhttp.Create(nil);


//chat.Lines.Clear;

//new := idhttp1.Get(URL+'/admin.php?nick='+nick+'&pw='+pw+'&go=getchat'+'&casenick='+casenick+'&lastid='+lastid);

new := getit.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 := getit.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;

  thread.DoTerminate;

end;

ste_ett 22. Mär 2006 17:21

Re: Threads!? Wie geht das?
 
Da darfst den Text nicht im Syncronize()-Teil runterladen.

Warum erzeugst du TidHttp auf der Form?
Klar, dass das die Form mit "runterzieht". :)

Ändere die Struktur mal ein bisschen:

Delphi-Quellcode:
TThreadName.Execute;
var
  sTemp: String;
  GetIt: TidHttp;
begin

// Runterladen im Thread
  GetIt.Create(nil);
  try
    sTemp := GetIt.Get('');
  finally
    GetIt.Free;
  end;

// Text aktualisieren auf der Form
  Syncronize(Update);
end;

Neuni 24. Mär 2006 20:24

Re: Threads!? Wie geht das?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hmm...irgendwie macht das "GetIt.Create(nil);" n Problem (siehe Anhang).

ste_ett 24. Mär 2006 21:03

Re: Threads!? Wie geht das?
 
Bei mir geht's.
Zeig mal die komplette Execute-Prozedur.

Neuni 25. Mär 2006 11:22

Re: Threads!? Wie geht das?
 
Delphi-Quellcode:
procedure TGetRemoteVersionThread.Execute;
var
  sTemp: String;
  GetIt: TidHttp;

begin

// Runterladen im Thread
  GetIt.Create(nil);
  try

new := getit.get(URL+'/admin.php?nick='+nick+'&pw='+pw+'&go=getchat'+'&casenick='+casenick+'&lastid='+lastid);

new := StringReplace(new, '###', #13#10, [rfReplaceAll]);



lastid := getit.get(URL+'/admin.php?nick='+nick+'&pw='+pw+'&go=getlastid'+'&casenick='+casenick);



  finally
    GetIt.Free;
  end;

// Text aktualisieren auf der Form
 
    Synchronize(Updateit);
end;



procedure TGetRemoteVersionThread.Updateit;
begin

if (new = '') OR (new = ' ') then begin

end else begin
form1.chat.Lines.Add(new);
end;


end;


procedure TForm1.Timer2Timer(Sender: TObject);
var
  Thread: TGetRemoteVersionThread;
begin

  Thread := TGetRemoteVersionThread.Create(True);
  Thread.FreeOnTerminate := True;
  Thread.Resume;

  thread.DoTerminate;

end;

ste_ett 25. Mär 2006 12:14

Re: Threads!? Wie geht das?
 
"GetIt" muss erzeugt werden.

Delphi-Quellcode:
GetIt := TIdHTTP.Create(nil);


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:33 Uhr.
Seite 3 von 3     123   

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