AGB  ·  Datenschutz  ·  Impressum  







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

Download fortschritt als im/als Image

Ein Thema von citybreaker · begonnen am 16. Apr 2004 · letzter Beitrag vom 17. Apr 2004
Antwort Antwort
Seite 1 von 3  1 23      
citybreaker
(Gast)

n/a Beiträge
 
#1

Download fortschritt als im/als Image

  Alt 16. Apr 2004, 18:59
Hallo,

ich lade mit UrlDownloadFile dateien aus dem internet,
jetzt möchte ich den download fortschritt in einem Image
anzeigen lassen. Alerdings hab ich kein plan wie das geht,
hab zwar etwas ähnliches mit einer progressbar gefunden,
aber da stapeln sich die fehlermeldungen bei mir.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Download fortschritt als im/als Image

  Alt 16. Apr 2004, 19:08
1. Was für Fehlermeldungen

2. un der CallBack-Prozedur bekommst du ja die Gesamtgröße und die aktuelle Größe, damit läßt sich doch was machen?
$2B or not $2B
  Mit Zitat antworten Zitat
citybreaker
(Gast)

n/a Beiträge
 
#3

Re: Download fortschritt als im/als Image

  Alt 16. Apr 2004, 19:21
Was für eine Callback procedure?

Hab folgendes genommen und nun versucht so zuändern das es mit einem Image geht?
Progressbar.Progress durch Proressbalken.Width(<< das image) ersetzt.

Delphi-Quellcode:
type
  cDownloadStatusCallback = class(TObject,IUnknown,IBindStatusCallback)
  private
    function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
    function _AddRef: Integer; stdcall; function OnStartBinding(dwReserved: DWORD; pib: IBinding): HResult; stdcall;
    function GetPriority(out nPriority): HResult; stdcall;
    function OnLowResource(reserved: DWORD): HResult; stdcall;
    function OnProgress(ulProgress, ulProgressMax, ulStatusCode: ULONG; szStatusText: LPCWSTR): HResult; stdcall;
    function OnStopBinding(hresult: HResult; szError: LPCWSTR): HResult; stdcall;
    function GetBindInfo(out grfBINDF: DWORD; var bindinfo: TBindInfo): HResult; stdcall;
    function OnDataAvailable(grfBSCF: DWORD; dwSize: DWORD; formatetc: PFormatEtc; stgmed: PStgMedium): HResult; stdcall;
    function OnObjectAvailable(const iid: TGUID; punk: IUnknown): HResult; stdcall;
  end;
Delphi-Quellcode:
function cDownloadStatusCallback._AddRef: Integer;
begin
  Result := 0;
end;

function cDownloadStatusCallback._Release: Integer;
begin
  Result := 0;
end;

function cDownloadStatusCallback.QueryInterface(const IID: TGUID; out Obj): HResult;
begin
  if(GetInterface(IID,Obj)) then
  begin
    Result := 0
  end
  else
  begin
    Result := E_NOINTERFACE;
  end;
end;

function cDownloadStatusCallback.OnStartBinding(dwReserved: DWORD; pib: IBinding): HResult;
begin
  Result := S_OK;
end;

//
function cDownloadStatusCallback.GetPriority(out nPriority): HResult;
begin
  Result := S_OK;
end;

function cDownloadStatusCallback.OnLowResource(reserved: DWORD): HResult;
begin
  Result := S_OK;
end;

function cDownloadStatusCallback.OnStopBinding(hresult: HResult; szError: LPCWSTR): HResult; stdcall;
begin
  Result := S_OK;
end;

function cDownloadStatusCallback.GetBindInfo(out grfBINDF: DWORD; var bindinfo: TBindInfo): HResult; stdcall;
begin
  Result := S_OK;
end;

//
function cDownloadStatusCallback.OnDataAvailable(grfBSCF: DWORD; dwSize: DWORD; formatetc: PFormatEtc; stgmed: PStgMedium): HResult;
begin
  Result := S_OK;
end;

//
function cDownloadStatusCallback.OnObjectAvailable(const iid: TGUID; punk: IUnknown): HResult; stdcall;
begin
  Result := S_OK;
end;

function cDownloadStatusCallback.OnProgress(ulProgress, ulProgressMax, ulStatusCode: ULONG; szStatusText: LPCWSTR): HResult;
begin
  case ulStatusCode of
    BINDSTATUS_BEGINDOWNLOADDATA:
    begin
      MainFrm.ProgressBalken.Width := 0;
      MessageDlg('Der Download wurde gestartet.', MtInformation, [mbYes], 0);
      if (UserCancel) then
      begin
        Result := E_ABORT;
        exit;
    function _Release: Integer; stdcall;

      end;
    end;
    BINDSTATUS_DOWNLOADINGDATA:
    begin
      MainFrm.ProgressBalken.Width := MulDiv(ulProgress,100, 240 );
      MessageDlg('Datei wird runtergeladen.', MtInformation, [mbYes], 0);
      if (UserCancel) then
      begin
        Result := E_ABORT; exit;
      end;
    end;
    BINDSTATUS_ENDDOWNLOADDATA:
    begin
      MessageDlg('Download wurde beendet.', MtInformation, [mbYes], 0);
    end;
  end;
  Application.ProcessMessages;

  Result := S_OK;
end;
So nun kommen die Fehlermeldungen bei Compilieren.
Zitat:
Deklaration von "GetPriority" unterscheidet sich von der Deklaration in interface 'IBindStatusCallBack'

Deklaration von "OnDataAvaiable" unterscheidet sich von der Deklaration in interface 'IBindStatusCallBack'

Deklaration von "OnObjectAvaiable" unterscheidet sich von der Deklaration in interface 'IBindStatusCallBack'
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#4

Re: Download fortschritt als im/als Image

  Alt 16. Apr 2004, 20:32
versuchs mal mit gauge statt mit progressbar
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von hm988
hm988

Registriert seit: 20. Dez 2002
132 Beiträge
 
Delphi 7 Personal
 
#5

Re: Download fortschritt als im/als Image

  Alt 16. Apr 2004, 21:16
hallo,

hast du es mal mit der ALProgress Bar probiert, mit der funktioniert des wunderbar bei mir.

oder ist das Die die bei dir soviele Fehlermeldungen erzeugt ??
Grüsse, Steven
  Mit Zitat antworten Zitat
citybreaker
(Gast)

n/a Beiträge
 
#6

Re: Download fortschritt als im/als Image

  Alt 17. Apr 2004, 09:58
Ähm ich will ja nix sagen. Ich will ein Image als Progressbar nehmen und keine Gauge, Progressbar oder ähnliches.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Download fortschritt als im/als Image

  Alt 17. Apr 2004, 10:03
Du kennst ja meinen "Turm von Hanoi".

Da hab ich ja auch ein Image als Fortschrittsanzeige genommen.

Du musst wirklich nur Width des Images verändern. Bei mir funktioniert das einwandfrei.
  Mit Zitat antworten Zitat
citybreaker
(Gast)

n/a Beiträge
 
#8

Re: Download fortschritt als im/als Image

  Alt 17. Apr 2004, 10:53
Joa soweit ist mir das klar, hab ja auch alles dementsprechend geändert,
jetzt kann ich das aber wegen den fehlermeldungen nicht compilieren.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Download fortschritt als im/als Image

  Alt 17. Apr 2004, 10:57
Wie hast du es denn jetzt und was sind das für Fehlermeldungen? Wenn die Callback keine Methode deiner Formklasse ist (kann es auch nicht sein), kennt er dein Image nicht. Du musst also den Namen deiner Formklasse voranstellen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Download fortschritt als im/als Image

  Alt 17. Apr 2004, 10:59
Zitat von citybreaker:
Was für eine Callback procedure?
cDownloadStatusCallback - ist 'ne schöne Klasse, mit vielen CallBackProzeduren


Du könntest ja auch mal dein Projekt hochladen - eventuell testen wir dann mal selber und entdecken womöglich den/die Fehler.


[edit]
der Name der Formklasse schaint ja schon drin zu sein (MainFrm.) es muß natürlich auch der richtige eingetragen sein.
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 16:00 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