AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi Weak Referenzen überlegungen...
Thema durchsuchen
Ansicht
Themen-Optionen

Weak Referenzen überlegungen...

Ein Thema von Mavarik · begonnen am 26. Dez 2014 · letzter Beitrag vom 27. Dez 2014
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#11

AW: Weak Referenzen überlegungen...

  Alt 26. Dez 2014, 23:29
Welche "Variable im Form"?

idR heisst ja nicht, dass es korrekt ist. Korrekt ist auf jeden Fall, dass Variablen (vor allem die für Instanz-Referenzen) die nicht lokal sind niemals auf einem ungültigen Wert stehen zu lassen. Selbst unter Nicht-ARC ist das schon immer der direkte Weg zu "Torte-Im-Auge" gewesen.

Ein FSomeThing.Free knallt und ist auch mit if Assigned( FSomeThing ) then nicht zu bändigen, wenn sich dort noch eine ungültige Referenz befindet. Lösen kann man das nur mit dem Setzen der Variablen auf nil und dafür wurde ja extra FreeAndNil eingeführt. Und das ist dann auch ARC-Safe.
OK - auch wenn das nicht die Frage war:

Eine lokale Variable geht i.d.R. gar nicht... Weil auf dem mobilen Gerät gibt es kein showmodal.

Aber es gibt einen Button oder ein ListElement oder was auch immer...

Darin steht:

MyForm := TMyForm.Create(Application);

Und MyForm ist aus der UMyForm.pas (Die Variable die automatisch definiert wird, wenn du ein neues Form an legst.

MyForm hat auch einen Button

In diesem Buttonclick steht.

Delphi-Quellcode:
MyForm2 := TMyForm2.Create(Application);
MyForm2.KillOldForm(Self);
Wenn Du jetzt in der KillOldForm ein FreeAndNIL aufrufst passiert überhaupt nix...
Da refcount 4 oder großer ist.

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

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

AW: Weak Referenzen überlegungen...

  Alt 27. Dez 2014, 10:06
Das ist eine besondere Situation, da du beim Erzeugen das Lifetime-Management bewusst an eine andere Instanz übergibst. In diesem Fall musst du System.TObject.DisposeOf verwenden.
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)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#13

AW: Weak Referenzen überlegungen...

  Alt 27. Dez 2014, 13:57
Das ist eine besondere Situation.
Siehst Du... Obwohl ich davon aus gehe, dass für eine App die mehr als eine - ich nenne das gerne - Klichmich.App ist das nicht besonders, sondern normal ist.

- Es gibt kein Showmodal
- Alle Fenster sind Maximized

Wenn Du also ein sinnvolles UI bauen willst hast Du mehr als 1 Form mit 2 Slide-ins
- Startmenue
- 1..n Programmteile
- Einstellungen
- Stammdaten
- Adresseingaben oder andere Daten

Du willst zwischen den Fenstern hin und her schalten können. Aber natürlich nicht alle Fenster permanent im Speicher halten.

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#14

AW: Weak Referenzen überlegungen...

  Alt 27. Dez 2014, 14:12
Wenn Du also ein sinnvolles UI bauen willst hast Du mehr als 1 Form mit 2 Slide-ins
- Startmenue
- 1..n Programmteile
- Einstellungen
- Stammdaten
- Adresseingaben oder andere Daten

Du willst zwischen den Fenstern hin und her schalten können. Aber natürlich nicht alle Fenster permanent im Speicher halten.
Bei so einer Aufgabenstellung habe ich dann lieber einen TabController genommen, auch gerne mal verschachtelt. Dabei hatte ich dann keine Sorgen mit dem freigeben von Fenstern. Einzigster Nachteil dabei ist, das ab einer bestimmten Anzahl von Tabs das ganze etwas unübersichtlich wird. Das gebe ich gerne zu. Aber mit dem TabController habe ich dann auch ein paar Slides hinbekommen, was mir mit Fenstern nie so richtig gelungen ist.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

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

AW: Weak Referenzen überlegungen...

  Alt 27. Dez 2014, 16:01
Wir driften vom Thema ab, aber das Konzept bei einer Mobil-App ist wohl durchaus eher eine MainForm mit einem TabControl, wo die einzelnen TabItems eigene Ableitungen von TTabItem sind, die dann ein spezielle Ableitung einer TForm in sich darstellen (und zwar wird von der Form-Instanz ein TLayout der Parent auf das TabItem gelegt).

Ein Frame wäre auch möglich, aber dann kann man zur Design-Time nicht zwischen den Target-Platformen umschalten und spezielle Layouts vorgeben.
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)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz