Einzelnen Beitrag anzeigen

Rollo62
Online

Registriert seit: 15. Mär 2007
4.095 Beiträge
 
Delphi 12 Athens
 
#3

AW: Versuch: TFileBrowser für Android, geht das ohne globale Variable?

  Alt 13. Nov 2020, 08:50
Wenn das eine globale Variable sein kann, dann könntest Du im TFileBrowser eine class var anlegen.
Normalerweise wird sowas über z.B. Instance gemacht.

Nur mal so grob hingeschrieben, ohne Gewähr:
Delphi-Quellcode:

type
  TMyClass = class
      class var FInstance;

      class function Instance : TMyClass;

      class constructor Create;
      class destructor Destroy;

      procedure CallWhatever;
  end;


class constructor TMyClass.Create;
begin
    FInstance := nil;
end;

class destructor TMyClass.Destroy;
begin
    FInstance.Free;
end;

class function TMyClass.Instance : TMyClass;
begin
    if not Assigned( FInstance ) then
    begin
        FInstance := TMyClass.Create;
    end;
 
    Result := FInstance;
end;


...
...
...

    TMyClass.Instance.CallWhatever; //<== geht jederzeit, wird beim ersten Aufruf erzeugt, und lebt bis zum Programmende in einer Instanz

....

Je nachdem sollte man das aber noch threadsafe absichern, bei Bedarf.


Edit:
@jaenicke, völlig richtig mit dem destruktor, jetzt isser drin.

Geändert von Rollo62 (13. Nov 2020 um 12:03 Uhr)
  Mit Zitat antworten Zitat