Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Threads und Vererbung? (https://www.delphipraxis.net/45488-threads-und-vererbung.html)

_Sebastian_ 7. Mai 2005 01:34


Threads und Vererbung?
 
Hallo Nachtschwärmer :-)

Ich habe mir eine Klasse vom Typ TThread erstellt, von welcher ich weiter ableiten will.
Nur kennt der Compiler die Objekte aus meiner Basis Thread Klasse nicht in der abgeleiteten Klasse.

Darf / Kann ich Threads Klassen nicht weitervererben?! oder mach ich nur irgendwas falsch?


mfg
Sebastian

Robert_G 7. Mai 2005 01:55

Re: Threads und Vererbung?
 
Warum sollte der Compiler TThread anders als alle anderen Klassen behandeln? ;)

Du kannst ja mal den Interface teil deines Threads zeigen. Dann könnte man sogar helfen. :zwinker:

_Sebastian_ 7. Mai 2005 02:24

Re: Threads und Vererbung?
 
Zitat:

Zitat von Robert_G
Warum sollte der Compiler TThread anders als alle anderen Klassen behandeln? ;):

Das habe ich mich auch gefragt. :-)

Das ist mein BasicThread:
Delphi-Quellcode:
type
  TBasicThread = class(TThread)
  private
    HTTP: TidHTTP;
    LastRefresh: Int64;
    Timer: TTimer;
    XMLParser: TXmlParser;
    function GetTimerInterval: Integer; virtual; abstract;
    function GetURL: string; virtual; abstract;
    procedure OnTimer(Sender : TObject);
  protected
    procedure Execute; override;
  public
    constructor Create; virtual;
    destructor Destroy; override;
  end;
Delphi-Quellcode:
type
  TMainDataThread = class(TBasicThread)
  private
    function GetURL: string; virtual;
    function GetTimerInterval: Integer; virtual;
  public
    constructor Create; override;
    destructor Destroy; override;
  end;
In den Methoden des TMainDataThread kennt er die ganzen Deklarierten Sachen aus dem Basic Thread nicht.

mumu 7. Mai 2005 02:39

Re: Threads und Vererbung?
 
wenn du die functionen abstract definierst, dann wirds wohl nicht klappen.

Christian Seehase 7. Mai 2005 02:58

Re: Threads und Vererbung?
 
Moin Sebastian,

hast Du TMainDataThread in der gleichen Unit deklariert, wie TBasicThread?
private-Elemente sind über Unitgrenzen hinweg nicht sichtbar.

@mumu:
Zitat:

Zitat von mumu
wenn du die functionen abstract definierst, dann wirds wohl nicht klappen.

abstract bedeutet nur, dass die Methoden nicht implementiert wurden, und in einer abgeleiteten Klasse, von der Instanzen gebildet werden sollen, implementiert werden sollten.
(von einer abstrakten Klasse sollte man i.d.R. keine Instanzen bilden).

_Sebastian_ 7. Mai 2005 11:07

Re: Threads und Vererbung?
 
Zitat:

Zitat von Christian Seehase
Moin Sebastian,

hast Du TMainDataThread in der gleichen Unit deklariert, wie TBasicThread?
private-Elemente sind über Unitgrenzen hinweg nicht sichtbar.

Nein das hatte ich natürlich nicht. Ist mir auch neu gewesen bzw. nie aufgefallen, dass das mit den privaten deklarationen so ist.

Nun gehts jedenfalls, Danke.

mumu 7. Mai 2005 16:02

Re: Threads und Vererbung?
 
Delphi-Quellcode:
wenn du die functionen abstract definierst, dann wirds wohl nicht klappen.
wer lesen kann ist klar im vorteil. sorry, war halt auch schon nach 3 uhr ;-) total verpeilt gewesen, ist natürlich totaler schwachsinn was ich da geschrieben hab

alzaimar 8. Mai 2005 14:31

Re: Threads und Vererbung?
 
Blöde Zwischenfrage:
Wieso werden die abstrakten Methoden des TBasicThread im TMainthread als 'virtual' declariert? Sollte das nicht override heissen?

_Sebastian_ 8. Mai 2005 14:34

Re: Threads und Vererbung?
 
Zitat:

Zitat von alzaimar
Blöde Zwischenfrage:
Wieso werden die abstrakten Methoden des TBasicThread im TMainthread als 'virtual' declariert? Sollte das nicht override heissen?

Jub, muss override sein. Weiss auch nicht warum ich die da als Virtual hatte. Glaub das war weil Modelmaker die beim Kopieren nicht geändert hatte. :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz