Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Jede Minute ein bild von einer IP holen... Prog. hängt!!! (https://www.delphipraxis.net/70851-jede-minute-ein-bild-von-einer-ip-holen-prog-haengt.html)

lordludwig 5. Jun 2006 18:36


Jede Minute ein bild von einer IP holen... Prog. hängt!!!
 
Hallo,

ich möchte mir ein Programm schreiben das mir jede Minute ein Bild von meiner IP-Cam holt und in einem Ordner speichert. Die URL, auf die ich zugreifen muss um NUR das bild zu sehen ist hier an diesem PC "http://192.168.1.39:3333/cam.jpg"

Mit welchem Code oder noch viel besser mit welcher Komponente (JEDI ist installiert) kann ich das am einfachsten und besten Lösen??? Ich erwarte hier keine fertigen lösungen oder so sondern eig. nur denkansätze, vorschläge oder vorlagen wie ich das machen kann, weil eigentlich will ja ich das Programm ja schreiben :-D :-D :-D

danke für antworten!!!

DataCool 5. Jun 2006 19:10

Re: Jede Minute ein bild von einer IP holen
 
Hi,

nimm die Indy IdHttp Komponente, das ganze kombinierst Du dann mit einem Timer oder noch besser in einem Thread und das wars schon.

Gruß Data

lordludwig 5. Jun 2006 20:06

Re: Jede Minute ein bild von einer IP holen
 
danke, mit der komponente hab ichs hinbekommen!!!

was ich vorhabe:

mit der IP-Cam morgen jede minute oder alle 10 minuten ein bild vom himmel zu machen und dann am abend zu nem Film zusammenschneiden. Sieht bestimmt nicht schlecht aus :-)

lordludwig 5. Jun 2006 20:29

Re: Jede Minute ein bild von einer IP holen
 
Zu früh gefreut:

Während ich das Bild downloade (ca. 15 sekunden) bleibt das Programm hängen... :(
IdAntiFreeze ist auf das Projekt gezogen, bleibt trozdem hängen. :gruebel:
Es läuft nur 1 download parallel. Wenn der Download fertig ist läuft alles weiter.
OnlyWhenIdle hab ich schon auf True und auf False probiert, geht beides nicht!!! :coder2:

nochma danke für alles antworten :-D :-D :-D

DataCool 5. Jun 2006 21:15

Re: Jede Minute ein bild von einer IP holen... Prog. hängt!!
 
Hi,

wie gross sind den die Bilder wenn der Download 15 Sekunden dauerd ?

Für Dein Problem gibt es 2 Lösungsmöglichkeiten :

1. Schreib Dir nen Thread der das ganze im Hintergrund erledigt, das wird definitiv funktionieren.

2. Setz beim IdAntiFreeze die Properies "ApplicationHasPriority" auf true und "OnlyWhenIdle" auf false.

Gruß Data

lordludwig 5. Jun 2006 21:27

Re: Jede Minute ein bild von einer IP holen... Prog. hängt!!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Da ich noch nie mit Threads gearbeitet habe und es ja anscheinend eine alternative gibt die auch überall außer bei mir läuft, würde ich methode 2 bevorzugen, aber das geht nicht :(

Im Anhang ein Screenshot und hier der Code:

Delphi-Quellcode:
unit laden;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP, XPMan, IdAntiFreezeBase, IdAntiFreeze;

type
  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Label3: TLabel;
    Status: TLabel;
    XPManifest1: TXPManifest;
    IdAntiFreeze1: TIdAntiFreeze;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
lStream: TFileStream;
begin
Status.Caption := 'Herunterladen...';
IdHTTP1.Head(Edit1.Text);
lStream:=TFileStream.Create(Edit2.Text, fmCreate or fmShareDenyNone);
try
idHTTP1.Get(Edit1.Text, lStream);
finally
if Assigned(lStream) then lStream.Free;
end;
Status.Caption := 'Fertig!!!';
end;

end.

Zacherl 5. Jun 2006 22:29

Re: Jede Minute ein bild von einer IP holen... Prog. hängt!!
 
Es gab mal einen Thread hier, wo genau dein Problem gelöst wurde. Musst mal nach IdHTTP + Thread suchen.
Ich weiß noch, dass ich auch meinen Senf dazugegeben hatte.

Florian

lordludwig 6. Jun 2006 11:41

Re: Jede Minute ein bild von einer IP holen... Prog. hängt!!
 
OK, habe das Problem gelöst!!!

Das es alle wissen die das das Problem auch mal haben:

In das Ereigniss OnWork vom IdHTTP einfach Application.ProcessMessages; eintragen, schon hängt nix mehr!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:18 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