![]() |
puplic-Procedure eines Thread in anderer Unit nutzen
Hallo,
ich stehe gerade total auf dem Schlauch. Ich habe einen Thread mit einer public-function.
Delphi-Quellcode:
im private-Bereich war eine procedure die ich nun in eine eigene Unit ausgelagert habe.
type
TDatenThread = class(TThread) private { Private-Deklarationen } public { Private-Deklarationen } constructor Create; destructor Destroy; override; function Datei_speichern(Datei: TFileName; Text: String): Boolean; protected { Protected-Deklarationen } procedure Execute; override; end; Diese procedure soll aber trotzdem noch auf diese public-function "Datei_speichern" zugreifen. Nur wie kann ich diese function in der anderen Unit benutzen? die neue Unit schaut so aus (gekürzt):
Delphi-Quellcode:
unit BasisUnit;
interface uses Classes, SysUtils, ThreadUnit, CommonUnit; //type { Aufrufe } function NCUpgrade_Infos_auslesen(SL_NCUpgrade: TStringList; out Programmliste: TStringList): TNCUpgrade_Daten; implementation //----------------------------------PROCEDURE---------------------------------// //----------------------------------FUNCTION----------------------------------// function NCUpgrade_Infos_auslesen(SL_NCUpgrade: TStringList; out Programmliste: TStringList): TNCUpgrade_Daten; var S_Text : String; F_Datei : TFileName; begin S_Text := 'ddd'; F_Datei := 'irgendeineDatei'; //Datei speichern Datei_speichern(F_Datei, S_Text); //<== end; end. |
Re: puplic-Procedure eines Thread in anderer Unit nutzen
Du brauchst eine Instanz der Klasse.
|
Re: puplic-Procedure eines Thread in anderer Unit nutzen
Zitat:
[Edit] Schande auf mein Haupt! Ich hab ja schon eine Instanz beim Erzeugen meines Thread. Die kann/muss ich natürlich verwenden |
Re: puplic-Procedure eines Thread in anderer Unit nutzen
Zitat:
Delphi-Quellcode:
Das Problem könnte nur sein, daß der Thread automatisch ausgeführt wird, sobald er erzeugt wurde. Das ist aber wohl nicht das, was du hier willst.
Instanz := TDataThread.Create;
Wenn die Methode Datei_speichern keine privaten Felder des Threads verwendet, kannst du sie auch als Klassenmethode deklarieren - dann brauchst du keine Instanz:
Delphi-Quellcode:
class function Datei_speichern(Datei: TFileName; Text: String): Boolean;
//Datei speichern TDataThread.Datei_speichern(F_Datei, S_Text); //<== |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08: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