![]() |
ios App:Komponente freigeben.
Guten Abend,
habe wieder mal ein Problem wo ich nicht weiterkomme. Möglicherweise hat einer von euch es schon lösen können. Ich entwickele zurzeit eine kleine App für iOS. In dieser App nutze ich die ![]() Ich verstehe leider nicht wieso diese Komponenten nicht freigegeben werden. Hatte jemand von euch schon das Problem? |
AW: ios App:Komponente freigeben.
siehe
![]() |
AW: ios App:Komponente freigeben.
Hallo,
danke für die schnelle Antwort. Welches Object sollte mit DisposeOf freigegeben werden? Soll ich es Auf Parent anwenden oder einzelene Childs der Reihe nach? Wenn ich DetailPage.DisposeOf aufrufe stürzt die ganze App sofort ab. |
AW: ios App:Komponente freigeben.
Bei DisposeOf wird ja die Prozedur Destroy aufgerufen in der Prozedur von Distroy wird dann noch mal DisposeOf aufgerufen. Das bringt vermutlich das ganze zum Absturz.
destructor TDPFUIView.Destroy; begin {$IFDEF IOS} FDPFView.DisposeOf; //FUIControl := nil; {$ENDIF} inherited; end; |
AW: ios App:Komponente freigeben.
Hier gibt es einen dangling pointer.
Wenn du von aussen die
Delphi-Quellcode:
Instanz per
FDPFView
Delphi-Quellcode:
entsorgst, dann sollte die
DisposeOf
Delphi-Quellcode:
auch die Referenz auf
TDPFUIView
Delphi-Quellcode:
auf nil setzen.
FDPFView
Aber genau das macht man dort wohl nicht -> Fehler in der Umsetzung. Ein erster Workaround könnte so aussehen (nach einem kurzen Überfliegen der Unit)
Delphi-Quellcode:
Eine richtige Lösung ist es nicht, da müsste man für die Instanz
destructor TDPFUIView.Destroy;
begin {$IFDEF IOS} if Assigned( FDPFView ) and not FDPFView.Disposed then FDPFView.DisposeOf; //FUIControl := nil; {$ENDIF} inherited; end;
Delphi-Quellcode:
eine
FDPFView
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz