Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi puplic-Procedure eines Thread in anderer Unit nutzen (https://www.delphipraxis.net/151833-puplic-procedure-eines-thread-anderer-unit-nutzen.html)

Helmi 3. Jun 2010 09:55


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:
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;
im private-Bereich war eine procedure die ich nun in eine eigene Unit ausgelagert habe.
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.

sirius 3. Jun 2010 09:57

Re: puplic-Procedure eines Thread in anderer Unit nutzen
 
Du brauchst eine Instanz der Klasse.

Helmi 3. Jun 2010 10:01

Re: puplic-Procedure eines Thread in anderer Unit nutzen
 
Zitat:

Zitat von sirius
Du brauchst eine Instanz der Klasse.

verständlich! - aber wie erhalte ich die bei einem Thread?

[Edit]
Schande auf mein Haupt!

Ich hab ja schon eine Instanz beim Erzeugen meines Thread.
Die kann/muss ich natürlich verwenden

Uwe Raabe 3. Jun 2010 10:12

Re: puplic-Procedure eines Thread in anderer Unit nutzen
 
Zitat:

Zitat von Helmi
Zitat:

Zitat von sirius
Du brauchst eine Instanz der Klasse.

verständlich! - aber wie erhalte ich die bei einem Thread?

Naja, wie man eben eine Instanz einer Klasse erzeugt:

Delphi-Quellcode:
Instanz := TDataThread.Create;
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.

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