Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Geräteübergreifende Anwendung funktioniert nicht wirklich (https://www.delphipraxis.net/205424-geraeteuebergreifende-anwendung-funktioniert-nicht-wirklich.html)

himitsu 8. Sep 2020 14:00

AW: Geräteübergreifende Anwendung funktioniert nicht wirklich
 
Ich och, aber bei dem Datensammelformular hatte ich abgebrochen. :stupid:
https://www.delphipraxis.net/1473245-post114.html

TurboMagic 8. Sep 2020 16:31

AW: Geräteübergreifende Anwendung funktioniert nicht wirklich
 
Zitat:

Zitat von himitsu (Beitrag 1473231)
Derartige Casts sind dort somit verboten
und wenn du sowas brauchst, dann mußt du ein Data-Objekt drumrum bauen.

Und ja, unter anderem wegen sowas ist plattformübergreifender Code oft fast unmöglich nicht einfach, denn hier darfst du nicht casten und brauchst Objekte drumrum,
aber drüben fehlt an vielen Stellen eine automatische Speicherverwaltung, oder sowas wie OwnsObjects, und mit Objekten bist'e angearscht, wenn du versuchst die Speicherlecks zu vermeiden.

Ja, aber auch nur bis 10.3.3 einschließlich.
Ab 10.4 ist auch unter mobile das ARC für Objekte ersetzt durch die bisherige manuelle Speicherverwaltung.
Damit fällt das Problem dann weg.

himitsu 8. Sep 2020 17:14

AW: Geräteübergreifende Anwendung funktioniert nicht wirklich
 
Zitat:

Zitat von TurboMagic (Beitrag 1473256)
Ja, aber auch nur bis 10.3.3 einschließlich.

Dass sich da irgendwas was mit ARC geändert haben soll, stand zwar in der "Werbung" für 10.4, aber was genau sich änderte stand nirgendwo (jedenfalls nicht so dass man es findet).
In der System.pas sah es auf den ersten Blick aber noch so aus, als wenn das ARC noch drin sei.

jaenicke 8. Sep 2020 17:28

AW: Geräteübergreifende Anwendung funktioniert nicht wirklich
 
Zitat:

Zitat von TurboMagic (Beitrag 1473256)
Ja, aber auch nur bis 10.3.3 einschließlich.
Ab 10.4 ist auch unter mobile das ARC für Objekte ersetzt durch die bisherige manuelle Speicherverwaltung.
Damit fällt das Problem dann weg.

Um genau zu sein fällt nicht das Problem (der unsaubere Code) weg, sondern es fällt nur nicht mehr auf, dass man solch dreckigen Code verwendet... ;-)
Und ob das nicht in Zukunft wieder andere Probleme macht, kann man vorher nicht wissen.

himitsu 8. Sep 2020 17:35

AW: Geräteübergreifende Anwendung funktioniert nicht wirklich
 
"unsauber" ist gut gesagt. (Post #3)

In dem Beispiel ist es eine String-Konstante.
Da fällt es erstmal nicht auf, wenn beim Löschen des Items ein Speicherleck entstehen könnte.

Und durch die Konstante fällt nicht auf, dass in diesem Cast eine "gezählte" Referenz fehlt,
denn wäre in der Variable wirklich eine Variable (RefCount > 0 oder besser noch genau 1), dann würde nach Ende der Funktion diese Variable freigegeben und in dem Zeiger stünde nur noch Schrott.



Beim Integer in dem Pointer (Post #1) gibt es mit der Speicherverwahltung des Integers kein Problem, aber eine automatische Referenzzählung der Objekte raucht hier (eventuell) ab, da es eben kein Objekt ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:16 Uhr.
Seite 2 von 2     12   

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