AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Download als Thread
Thema durchsuchen
Ansicht
Themen-Optionen

Download als Thread

Ein Thema von Larsi · begonnen am 16. Feb 2009 · letzter Beitrag vom 16. Feb 2009
Antwort Antwort
Seite 1 von 2  1 2      
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#1

Download als Thread

  Alt 16. Feb 2009, 14:31
Hi,

ich habe hier im Forum mal gesucht und auch was gefunden aber so richtig verstehen tu ich die Codes da nicht. Ich möchte noch anmerken, dass ich vorher noch nie mit Threads gearbeitet hab. Also ich möchte eine Datei mit IdHttp in einem Thread downloaden sodass meine Hauptanwendung nicht abstürzt währenddessen. Ich habe mir Luckies Tutorial mal durchgeblättert doch das Ganze ist ein bisschen viel zu lesen (40 Seiten). Natürlich werde ich mir das nochmal richtig duchlesen aber ich hoffe trotzdem erstmal auf eure Hilfe.

Also hier mein bisheriger Code im Thread:
Delphi-Quellcode:
unit Downloaden;

interface

uses
  Classes, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP;

type
  Download = class(TThread)

  private
     procedure Downloaden;
  protected
    procedure Execute; override;

  end;


implementation

uses Unit1, Unit12;

{ Download }

procedure IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Integer);
begin
form12.progressbar1.Position := AWorkCount;
end;

procedure IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCountMax: Integer);
begin
form12.progressbar1.Max := aworkcountmax;
end;

procedure IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
begin
form12.progressbar1.Position := 0;
form12.progressbar1.Visible := false;
end;

procedure Download.Execute;
begin
Synchronize(Downloaden);
end;

procedure Download.Downloaden;
var http1: TIdhttp;
lstream: Tfilestream;
begin
  http1 := TIdhttp.create();

  http1.free;

lStream:=TFileStream.Create(form1.Edit1.Text + '\' + form1.Edit2.Text + '.mp4' , fmCreate);
  try
     Http1.Get(Form12.memo4.text,lStream);
  finally
    lStream.Free;
  end;


end;

end.
Geht das Ganze so einigermaßen?

Mein eigentliches Problem ist jetzt aber das ich nicht weiß wie ich den Thread per Button starte?

Wenn ich sowas schreibe:
Delphi-Quellcode:
var
  Fredie: TDownload;
begin
Fredie:=TDownload.Create(True);
 Fredie.OnTerminate:=ThreadTerminate;
  Fredie.Resume;

end;
Erhalte ich folgende Fehlermeldung:

[DCC Fehler] Unit12.pas(190): E2003 Undefinierter Bezeichner: 'TDownload'

Wenn ich bei den Uses den Unit Namen "Downloaden" eingebe kommt der gleiche Fehler. Ich hoffe Ihr könnt mir helfen.

MFG Lars Wiltfang
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#2

Re: Download als Thread

  Alt 16. Feb 2009, 14:33
Deine Klasse heißt ja auch Download und nicht TDownload. Weißt du überhaupt, was du da programmiert hast?

Download = class(TThread) Mit freundlichen Grüßen,

Valle
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#3

Re: Download als Thread

  Alt 16. Feb 2009, 14:33
Deine Klasse heißt ja auch Download, und nicht TDownload. Die IdHTTP solltest du abgesehen davon natürlich innerhalb deiner thread-Klasse (private) deklarieren.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Download als Thread

  Alt 16. Feb 2009, 14:35
Delphi-Quellcode:
  http1 := TIdhttp.create();

  http1.free;
Ob da was gehen kann wenn du deine Instanzen gleich wieder freigibst
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: Download als Thread

  Alt 16. Feb 2009, 14:43
Und wenn ich mich nicht täusche bringt dein Thread eh nix, weil du ja durch Synchronize eh wieder alles quasi in den Hauptthread verlagerst...
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#6

Re: Download als Thread

  Alt 16. Feb 2009, 14:46
Mal angenommen er würde dieses Synchronize nicht verwenden und idHttp würde tatsächlich in einem Thread laufen; würden die zugewiesenen Events (IdHTTP1Work) dann nicht auch im Thread ausgeführt werden? Und würde das nicht bedeuten, dass er einen weiteren Fehler macht, da er ja dort auf die VCL zugreift? Da enden meine Delphi-Kenntnisse als Linuxer und "Pythoner" nämlich.

Mit freundlichen Grüßen,

Valle
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#7

Re: Download als Thread

  Alt 16. Feb 2009, 14:52
Zitat von Valle:
Mal angenommen er würde dieses Synchronize nicht verwenden und idHttp würde tatsächlich in einem Thread laufen; würden die zugewiesenen Events (IdHTTP1Work) dann nicht auch im Thread ausgeführt werden? Und würde das nicht bedeuten, dass er einen weiteren Fehler macht, da er ja dort auf die VCL zugreift?
Völlig richtig. Im Grund macht er alles falsch, was man falsch machen kann
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

Re: Download als Thread

  Alt 16. Feb 2009, 14:53
wenn er den Zugriff von IdHTTP1Work mit Synchronize in den Hauptthread verlegt, würde dieses dann wieder gehn.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Download als Thread

  Alt 16. Feb 2009, 16:17
Was mir derzeit auffällt ist das fast alle schreiben das er alles falsch macht und wie man es nicht macht. Aber eigentlich war ja die Frage wie man es macht. Wie es nicht geht weiß er sicher selbst
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Download als Thread

  Alt 16. Feb 2009, 16:59
Er sollte doch erst das Tutorial von Luckie lesen und dann sich daran wagen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:02 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