AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Procedureübergabe bei Threads

Ein Thema von HalloVonMir · begonnen am 10. Jan 2018 · letzter Beitrag vom 10. Jan 2018
Antwort Antwort
HalloVonMir

Registriert seit: 3. Jun 2007
4 Beiträge
 
#1

Procedureübergabe bei Threads

  Alt 10. Jan 2018, 20:12
Delphi-Version: 7
Hallo
Ich habe folgendes Problem: Ich bin dabei eine Klasse zu schreiben, die Dateien downloaded (mittels Thread). Dazu soll der User u.a. als Übergabe 2 Funktionen mitgeben:
Eine update-Funktion, die aktuelle Geschwindigkeit und Fortschritt anzeigt
Eine Fertig-Funktion, die aufgerufen werden soll wenn der Download fertig ist.

Delphi-Quellcode:
type
  TBinFertig = procedure(p:pointer;index:string);
  Tupdaten = procedure(status:string;akt,max:integer;speed:real);

  Tdownload = class(Tthread)
    FBinFertig:TBinFertig;
    Fupdaten:Tupdaten;
    ...
   constructor Create(url:string;Bf: TBinFertig;up:Tupdaten);
Soweit sogut, das funktioniert.

Nun möchte ich eine weitere Klasse machen, die eine Datei downloaded, bearbeitet und im Anschluss ausgibt, dass sie fertig ist.

Delphi-Quellcode:
type tspeziell=class
  datenbearbeitet:string;
  procedure fertig(p:pointer;index:string);
  procedure start;
end;

procedure tspeziell.fertig(p:pointer;index:string);
 begin
   // bearbeitedaten...
 end;

procedure tspeziell.start;
begin
  tdownload.create('http://www.google.de',fertig,nil); //Hier kommt der Fehler, wenn ich die Procedure "Fertig" übergebe
end;
Klappt aber nicht mit dem Fehler:
incompatible types: regular procedure and method pointer
Wenn ich jedoch die fertig-Procedure nicht als von Child von Tspeziell einbaue funktioniert sie, jedoch habe ich dann keinen Zugriff auf die internen Datas, die ich unbedigt benötige.

Wie kann ich das lösen?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

AW: Procedureübergabe bei Threads

  Alt 10. Jan 2018, 20:51
Eine Methode wird als Procedure bzw. Function of object deklariert.
Delphi-Quellcode:
type
  TDingens = procedure(Wuppdi: integer) of object;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH (11. Jan 2018 um 07:15 Uhr)
  Mit Zitat antworten Zitat
HalloVonMir

Registriert seit: 3. Jun 2007
4 Beiträge
 
#3

AW: Procedureübergabe bei Threads

  Alt 10. Jan 2018, 22:44
Ah danke!!
  Mit Zitat antworten Zitat
Antwort Antwort


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