Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Auf 'Parent Object' zugreifen

  Alt 6. Feb 2019, 08:49
Ein Pointer auf eine Variable einer Instance von TStringList ist an sich schon wiedersinnig.
Es kann nicht sichergestellt werden, dass die Variable oder der Inhalt der Stringliste außerhalb verändert wird oder überhaupt noch gültig ist.
Mit einer Kopie der Stringliste zu arbeiten, erscheint mit sicherer.
Delphi-Quellcode:
type
  TFileWalker = class(TThread)
  protected
    procedure Execute; override;
  private
    FFilepath: string;
    FStringList: TStringList;
    FFreceiverFormHandle: HWND;
  public
    constructor Create(AStrings: TStrings; AFilepath: string; AReceiverFormHandle: HWND);
    destructor Destroy; override;
  end;


constructor TFileExplorer.Create(AStrings: TStrings; AFilepath: string; AReceiverFormHandle: HWND);
begin
  inherited Create(False);

  FStringList := TStringList.Create;
  FStringList.Assign(AStrings);

  FFilepath := AFilepath;
  FFReceiverFormHandle := AReceiverFormHandle;
end;

destructor TFileExplorer.Destroy;
begin
  FStringList.Free;

  inherited;
end;
"Start" ist nicht erforderlich, wenn man "CreateSuspended" auf False setzt.
Der Thread wird automatisch gestartet, wenn der Constructor beendet ist.
  Mit Zitat antworten Zitat