Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: FMX - Kenne die Fehler für ein einfachere Arbeit.

  Alt 16. Mai 2015, 02:11
Ich möchte einen kurzen Beitrag bringen zu dem, was ich gerade eben gelernt habe:

Ich habe für mein VCL-Programm (PixPower) mit XE7 ein kleines FMX-Hilfsprogramm geschrieben, welches von einem mobilen Gerät (derzeit nur Android) ein gerade gemachtes Photo oder ein Photo, das der User aus der Foto-Bibliothek auswählt, an das Desktop-Programm überträgt. Das Programm basiert auf dem Photowall-Demo-Programm, das EMBA im Tethering-Ordner mitliefert.

Beispiel ausprobiert, alles läuft. Prima. In mein PixPower-Programm integriert:

Läuft zwar...

... aber nur, wenn die beiden Tethering-Komponenten bereits zum Programmstart aktiviert sind. Das könnte man zwar machen, finde ich aber doof, wenn beim Programmstart schon direkt die Firewall angeht.

Nach einigem Suchen habe ich herausgefunden: Habe, wie früher so üblich beim Start des Programms im Oncreate-Event der Mainform dem

"Application.OnMessage := AppMessage" zugewiesen.

Keine Ahnung warum, aber das war der Grund, warum eine nachträgliche Aktivierung der Tethering-Komponenten (eben erst dann, wenn ich einen Empfangsdialog aufrufe) nicht funktioniert. Bringt anscheinend die Kommunikation durcheinander. Workaround war, die Nachrichten, die ich bislang in der eigenen AppMessage-Procedure verarbeitet habe, in einer TApplicationEvents-Komponente (da in "OnMessage") verarbeite.

Danach funktionierte alles wie gewünscht.

Ach ja, anscheinend wird für App-Tethering die volle RTTI-Funktionalität benötigt, das hier musste ich deaktivieren:

Delphi-Quellcode:
{$weaklinkrtti on}
{$rtti explicit methods([]) properties([]) fields([])}
Das "fertige" Hilfsprogramm kann man sich bei Interesse hier mal ansehen: http://youtu.be/5MDKZI06w4g (Dauer: 2 Minuten)
Bei Gelegenheit werde ich das Programm noch erweitern und die ab XE7 bestehende Übertragungsmöglichkeit per Bluetooth ergänzen.

Geändert von Harry Stahl (16. Mai 2015 um 02:15 Uhr)
  Mit Zitat antworten Zitat