AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Problem mit TidHTTP in Thread
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit TidHTTP in Thread

Ein Thema von Angel4585 · begonnen am 26. Jun 2006 · letzter Beitrag vom 28. Jun 2006
Antwort Antwort
Seite 2 von 3     12 3      
bailey

Registriert seit: 9. Mär 2006
19 Beiträge
 
#11

Re: Problem mit TidHTTP in Thread

  Alt 27. Jun 2006, 14:33
Zitat von Angel4585:
hat sich erledigt, ich hatte eine Komponente des Hauptformulars in der Prozedur mit der TIdHTTP-Kompo verwendet, jetz hab ich die rausgeschmissen un es funktioniert
Ich verwende keine Kompo aus der hauptform in der Procedure, aber in der classe...
hängt es eventuell damit...!?


Das ist die Procedure
Delphi-Quellcode:
procedure TmySqlClass.PSaveToSQL(NewArray : TList; ID : integer);
var
    i : integer;
    Response : String;
    LParams : TStringlist;
    n : string;


begin
  LParams := TStringlist.Create;
  LParams.Add('QUERY=SAVE');
  n := inttostr(0);
  try
      for i := 0 to NewArray.Count -1 do
      begin
          if (TDateien(NewArray.items[i]^).Available = false) then
              begin
              LParams.Add( 'id'+n+'='+inttostr(ID));
              LParams.Add( 'filename'+n+'='+TDateien(NewArray.items[i]^).Filename);
              LParams.Add( 'size'+n+'='+inttostr(TDateien(NewArray.items[i]^).size));
              LParams.Add( 'typ'+n+'='+StringReplace(TDateien(NewArray.items[i]^).typ,'.','',[rfReplaceAll]));
              LParams.Add( 'sprache'+n+'='+TDateien(NewArray.items[i]^).Leanguage);
              LParams.Add( 'erstellt'+n+'='+FormatDateTime('yyyy-mm-dd hh:mm:ss', TDateien(NewArray.items[i]^).Create));
              LParams.Add( 'geaendert'+n+'='+FormatDateTime('yyyy-mm-dd hh:mm:ss', TDateien(NewArray.items[i]^).Modified));
              LParams.Add( 'md5'+n+'='+TDateien(NewArray.items[i]^).MD5);
               n:= inttostr(strtoint(n)+1);
              //sleep(3);
              end; // if
      end; // for
     response := IdHTTP1.Post('http://www.server.de/delphi.php', LParams);

     //showmessage(response);
    except
        on e:exception do showmessage(e.Message);
    end;
    LParams.Free;

end;
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#12

Re: Problem mit TidHTTP in Thread

  Alt 27. Jun 2006, 14:40
Hi,

damit die Hauptanwendung nicht blockiert wird sollte das IdHttp in einem Thread ausgelagert werden !
Des weiteren sollte auf der Main-Form ein TIdAntifreeze seien !
Und zu guter letzt muss alles was im Thread abläuft und auf andere Gui Elemente zugreift/ändert syncronisiert werden.

Gruß Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#13

Re: Problem mit TidHTTP in Thread

  Alt 27. Jun 2006, 15:05
ich erzeuge die immer neu:

Delphi-Quellcode:
with TIdHTTP.Create(nil) do
  try
  .
  .
  .
  finally
    Free;
    end;
nein mein Problem war das ich im Hauptformular eine Komponente habe(TScrollbox) auf welche ich in dieser prozedur zugegriffen habe um mir etwas anderes anzigen zu lassen. Jetzt habe ich diesen Teil ausgelagert in eine extraProzedur und jetzt geht es.

Das mit dem TIdAntifreeze werd ich mir heut abend mal genauer anschauen. THX
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: Problem mit TidHTTP in Thread

  Alt 27. Jun 2006, 15:18
AntiFreeze funktioniert bei mir nie, und warum ziehst du das IdHTTP nicht einfach auf die Main Form? Alles andere ist Verschwendung von Rechenzeit (zugegeben, sehr wenig, aber trotzdem unnötig.)
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#15

Re: Problem mit TidHTTP in Thread

  Alt 27. Jun 2006, 15:22
ja wenn ichs auf die Mainform setze dann hängt diese während ich im Thread die Anzahl der Nachrichten ermittle
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#16

Re: Problem mit TidHTTP in Thread

  Alt 27. Jun 2006, 15:23
@Angel4585:

Zitat:
ich erzeuge die immer neu:
^^^^^ Nicht gut verschwendet nur Ressourcen.

Zitat:
nein mein Problem war das ich im Hauptformular eine Komponente habe(TScrollbox) auf welche ich in dieser prozedur zugegriffen habe um mir etwas anderes anzigen zu lassen. Jetzt habe ich diesen Teil ausgelagert in eine extraProzedur und jetzt geht es.
^^^^^ Wenn Du das ganze innerhalb eines Threads machst, dann solltest Du den TEil wo du auf Gui Elemente zugreifst in einer seperate Procedure(des Threads) auslagen und diese dann im Thread mit syncronize(myScrollProcedure) aufrufen.

Gruß Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Benutzerbild von Stefan Hueg
Stefan Hueg

Registriert seit: 13. Jun 2004
Ort: Gießen
187 Beiträge
 
Delphi 2006 Professional
 
#17

Re: Problem mit TidHTTP in Thread

  Alt 28. Jun 2006, 03:05
TIdAntiFreeze hatte bei mir auch noch nie funktioniert, habe es seitdem gelassen. Warum das nich geht? K.A.
Stefan Hueg
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#18

Re: Problem mit TidHTTP in Thread

  Alt 28. Jun 2006, 07:16
Bei mir gehts auch nie...
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#19

Re: Problem mit TidHTTP in Thread

  Alt 28. Jun 2006, 07:49
AntiFreeze ist auch nicht notwendig wenn das ganze im Thread läuft. Im Gegensatz zur breiten Meinung finde ich schon das TIdHttp auch im Thread erstellt werden soll wenn es dort genutzt wird. Der Grund liegt in der Objectorientierung und der Vermeidung von Fehlern. Wenn die Http-Komponente nur im Thread benötigt wird gehört sie auch dort hin. Desweiteren ist damit sicher gestellt das die Komponente nicht von einem zweiten Thread gleichzeitig genutzt wird.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#20

Re: Problem mit TidHTTP in Thread

  Alt 28. Jun 2006, 11:11
Hi,

das IdHttp gehört in den Thread wie SirThornberry schon gesagt hat.

Desweiteren ist es besser das TIdAntifreeze zu benutzen, selber auf die Form zu ziehen.
Existiert kein TIdAntifreeze erzeugt Indy selber eine globale Instanz, das Antifreeze ist somit so oder so da.
Nur wenn man es selbst auf die Form ziehst hat man noch die Mögleichkeit auf die Properties des Antifreeze Einfluss zu nehmen.

Interessant sind da nämlich die Eigenschaften "ApplicationHasPriority", "OnlyWhenIdle", "IdleTimeOut" und "Active".

Gruß Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 17:45 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