Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Immer Ärger mit ARC

  Alt 24. Okt 2014, 19:28
Du hast kein Problem mit ARC sondern mit dem Lesen der Doku Delphi-Referenz durchsuchenFMX.Forms.TApplication.CreateForm
http://docwiki.embarcadero.com/Libraries/de/FMX.Forms.TApplication.CreateForm

Erstellt zur Laufzeit ein neues FireMonkey-Formular.
Rufen Sie CreateForm auf, um ein FireMonkey-Formular dynamisch zur Laufzeit zu erstellen. Bei den meisten Formularen braucht kein eigener Quelltext geschrieben zu werden, da bei Verwendung des Formular-Designers üblicherweise ein oder mehrere Aufrufe von CreateForm automatisch in die Quelltextdatei des Projekts eingefügt werden.
Zitat von Tipp:
CreateForm erstellt das angegebene Formular nicht sofort. Mit der Methode wird lediglich der ausstehenden Liste eine Anforderung hinzugefügt. RealCreateForms erstellt die tatsächlichen Formulare.

Auf deinen Code angewendet sollte das hier die Lösung sein (klein aber fein)
Delphi-Quellcode:
program AppTwo;

uses
  System.StartUpCopy,
  FMX.MobilePreview,
  FMX.Forms,
  Viewer in 'Viewer.pas{View},
  MBPresenter in 'MBPresenter.pas',
  MBModel in 'MBModel.pas',
  MBInterface in 'MBInterface.pas';

{$R *.res}

Procedure Main;
Var Model : IMyInterfaceModel;
          View : TView;
          Presenter : TPresenter;
Begin
     Application.CreateForm(TView, View);

     Application.RealCreateForms; // <-- da isser der pöse Pursche

     Model := TModel.Create;
     Presenter := TPresenter.Create(View, Model);

     try
        Application.Run;
     finally
        Presenter.Free;

        // ist eigentlich nicht notwendig, das Model-Interface wird am Ende diese Prozedur
        // automatisch freigegeben

        // Model._Release;

        // alternativ wäre noch ein
        // Model := nil;
        // denkbar
     end;
End;


begin
     Application.Initialize;
     Main;
end.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (24. Okt 2014 um 19:35 Uhr)
  Mit Zitat antworten Zitat