Forum: Cross-Platform-Entwicklung
by Sir Rufo,
30. Okt 2014
Da habe ich doch gerade herausgefunden, dass man vom System.Messaging.TMessageManager.DefaultManager auch benachrichtigt werden kann, wenn die Form erzeugt wird.
Logischer-(Emba-)weise wird in der versendeten Message nicht die Form-Instanz mitgegeben (nachher kann man noch damit etwas sinnvolles anfangen, das muss sofort unterbunden werden :roll:).
Als Sender bekommt man dafür die...
Forum: Cross-Platform-Entwicklung
by Sir Rufo,
25. Okt 2014
Durch den Scope ist aber klar welche Variable hier benutzt wird, nämlich die lokale. Die globale wird immer auf nil bleiben und die lokale ist aber auch nach Application.CreateForm (TView, View); auf nil. Das steht auch in der Doku so.
Die Vorgehensweise ist prinzipiell schon richtig, da die richtige Variable benutzt wird, allerdings gibt es ein Problem mit dem Timing!
Forum: Cross-Platform-Entwicklung
by Sir Rufo,
25. Okt 2014
Im Anhang mal das ganze Projekt.
Zu den Änderungen:
Eine zentrale Instanz TAppStarter bekommt eine anonyme Factory mitgegeben um den Presenter zu erzeugen.
Aufgerufen wird diese Factory dann bei den Mobile-Plattformen (IOS/ANDROID) über den IFMXApplicationEventService und zwar beim Event TApplicationEvent.FinishedLaunching. Bei allen anderen Plattformen wird zunächst...
Forum: Cross-Platform-Entwicklung
by Sir Rufo,
24. Okt 2014
Den Code mit den Application-Events meinst du?
Der kommt normalerweise in die MainForm, allerdings würde der hier besser im MainPresenter passen, denn der soll ja die Kontrolle über die View haben. Allerdings sehen wir ja, dass das dann eigentlich schon zu spät sein könnte.
Denkbar wäre jetzt auch noch ein ApplicationPresenter (?) der diese Events empfängt und dann auch für das...
Forum: Cross-Platform-Entwicklung
by Sir Rufo,
24. Okt 2014
Ja, die Mobile-Platformen sind da anders (hatte ich nicht mehr so auf dem Schirm) und eigentlich sollte man dort auch auf die entsprechenden Ereignisse reagieren
// registrieren
if TPlatformServices.Current.SupportsPlatformService( IFMXApplicationEventService, FApplicationEventService )
then
begin
FApplicationEventService.SetApplicationEventHandler(...
Forum: Cross-Platform-Entwicklung
by Sir Rufo,
24. Okt 2014
Nimm mal das fView.SetHelloWorld aus dem TPresenter.Create dann sollte die Anwendung schon mal fehlerfrei starten ;)
Forum: Cross-Platform-Entwicklung
by Sir Rufo,
24. Okt 2014
Du hast kein Problem mit ARC sondern mit dem Lesen der Doku 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...