Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   iOS #FMX_kdF "Spass mit den iPad! (https://www.delphipraxis.net/185169-fmx_kdf-spass-mit-den-ipad.html)

Mavarik 20. Mai 2015 09:02

#FMX_kdF "Spass mit den iPad!
 
Liste der Anhänge anzeigen (Anzahl: 1)
#FMX_kdF Diskussion zu Spass mit dem iPad!

Sorry für alle die kein iPad haben, hier der Effekt.

Mavarik

Daniel 20. Mai 2015 09:05

AW: #FMX_kdF "Spass mit den iPad!
 
Frank, so bringt das wenig.
Sei doch bitte so gut und beschreibe, was da passiert. Oder eben, was da nicht passiert.

Und ein Application.ProcessMessages ist unter iOS eh nicht so üblich. Eigentlich so ganz und gar nicht, da .ProcessMessages klar die Windows (!) Message-Loop adressiert. Da sollte es wichtigere Baustellen geben.

Mavarik 20. Mai 2015 09:24

AW: #FMX_kdF "Spass mit den iPad!
 
Zitat:

Zitat von Daniel (Beitrag 1302244)
Frank, so bringt das wenig.
Sei doch bitte so gut und beschreibe, was da passiert. Oder eben, was da nicht passiert.

Dafür das Video...

OK OK OK... nochmal als Text...

Startet man eine iPad App im Landscape Modus und hat ein Application.Processmessages im FormCreate - erhält man eine um 90° gedrehte Ansicht...
Manchmal dreht es nichtmal um dem Mittelpunkt..

Zitat:

Zitat von Daniel (Beitrag 1302244)
Und ein Application.ProcessMessages ist unter iOS eh nicht so üblich. Eigentlich so ganz und gar nicht, da .ProcessMessages klar die Windows (!) Message-Loop adressiert. Da sollte es wichtigere Baustellen geben.

Nicht so üblich? ProcessMessages macht unter iOS "genau" das gleiche wie unter Windows, sorgt dafür, dass die Maintask die Oberfläche aufbauen kann und zwar innerhalb einer anderen Procedure...

Und das ist an machen Stellen und iOS & Android leider unverzichtbar, da eine Weiterverarbeitung von Werten sonst nicht ermöglicht wird... Das ist dadurch begründet, dass FMX leider viele Dinge erst berechnet - oder sogar existieren, wenn die Objekt angezeigt wurden.

Beispiel: Ich setze ein Element von Align.Left auf Align.Client wenn ich jetzt einen Text dynamisch per Canvas.MeasureText(... berechnen will, muss das Element erst neu gezeichnet werden sonst stimmt die Width nicht... usw...

Es gibt seit XE8 leider noch mehr Stellen als vorher die sich hier anders verhalten als XE7 und ggf. wird wieder mal ein Application.Processmessages mehr benötig...

Jetzt könnte man sich quer stellen und sagen : "Dann musst Du das anders machen...". Leider geht es manchmal nicht anders und nur weil FMX sich plötzlich anders verhält oder iOS&Android kann ich nicht die ganze App umbauen...

Aber ich gebe Dir recht... Es gibt wichtigere Fehler...:roll:

Mavarik

Darlo 20. Mai 2015 09:41

AW: #FMX_kdF "Spass mit den iPad!
 
Deswegen habe ich mir angewöhnt das onCreate soweit wie möglich leer zu lassen und die Sachen in einen Timer zu verschieben.

Mavarik 20. Mai 2015 09:52

AW: #FMX_kdF "Spass mit den iPad!
 
Zitat:

Zitat von Darlo (Beitrag 1302253)
Deswegen habe ich mir angewöhnt das onCreate soweit wie möglich leer zu lassen und die Sachen in einen Timer zu verschieben.

Autsch... Timer... hab ich früher auch gemacht.. heute nehme ich TThread.Queue weil ein Timer so Hardwareabhängig ist... Also nicht der Timer, sondern die Zeit die gewartet werden muss...

Oder halt eine Message von type ApplicationIdle...

Der schöne Günther 20. Mai 2015 09:54

AW: #FMX_kdF "Spass mit den iPad!
 
Ich möchte das Thema nicht entführen- Falls das ablenkt, einfach ignorieren

Könnt ihr ein konkretes Beispiel geben wofür man so etwas braucht? Ich bin eigentlich immer mit dem
Delphi-Quellcode:
OnActivate
-Event der Formulare sehr gut gefahren, mehr habe ich nie gebraucht.

Mavarik 20. Mai 2015 10:03

AW: #FMX_kdF "Spass mit den iPad!
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1302257)
Könnt ihr ein konkretes Beispiel geben wofür man so etwas braucht? Ich bin eigentlich immer mit dem
Delphi-Quellcode:
OnActivate
-Event der Formulare sehr gut gefahren, mehr habe ich nie gebraucht.

Neuer Thread

greenmile 20. Mai 2015 10:40

AW: #FMX_kdF "Spass mit den iPad!
 
Danke für den Hinweis, ist ein kleinerer Fehler der mich schon immer gestört hat.

Darlo 20. Mai 2015 10:55

AW: #FMX_kdF "Spass mit den iPad!
 
Zitat:

Zitat von Mavarik (Beitrag 1302256)
Zitat:

Zitat von Darlo (Beitrag 1302253)
Deswegen habe ich mir angewöhnt das onCreate soweit wie möglich leer zu lassen und die Sachen in einen Timer zu verschieben.

Autsch... Timer... hab ich früher auch gemacht.. heute nehme ich TThread.Queue weil ein Timer so Hardwareabhängig ist... Also nicht der Timer, sondern die Zeit die gewartet werden muss...
Oder halt eine Message von type ApplicationIdle...

Ist nicht jeder Workaround ein "autsch"? Und ob der Timer bei einem Intervall von 1ms 500% später auslöst ist mir beim erstmaligen öffnen der App echt schnuppe ;-)

himitsu 20. Mai 2015 11:05

AW: #FMX_kdF "Spass mit den iPad!
 
Zitat:

Zitat von Darlo (Beitrag 1302253)
Deswegen habe ich mir angewöhnt das onCreate soweit wie möglich leer zu lassen und die Sachen in einen Timer zu verschieben.

Wobei ich mir da eher die Timerkomponente abgeleitet hätte, die ein OnStartUp-Event von sich aus nur einmal feuert,
oder ich hätte mir die TForm abgeleitet und ihr ein OnStartUp verpasst, daß z.B. ähnlich dem OnShow aufgerufen wird, aber eben auch nur einmal.


Oder im Windows im OnCreate ein PostMessage an die eigene Form. Das kommt an, wenn Delphi mit dem Erstellen der Form fertig ist und wieder Messages verarbeitet,
solange keiner so doof ist und das durch ein Application.ProcessMessages schrottet. (k.A. wie man das im iOS mach)


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:55 Uhr.
Seite 1 von 2  1 2      

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