Profile cover photo
Profile photo
Christoph Schneider
19 followers
19 followers
About
Christoph Schneider's posts

Post has shared content
Mein Vortrag Cross-Plattform-Entwicklung mit Firemonkey stiess bei der Delphi-Schweiz-Community auf reges Interesse.
Herzlichen Dank an Christoph für seinen Vortrag am 8. Delphi-Stamm in Glattbrugg. Gerne lege ich seine Folien dazu hier ab.

Die nächsten Termine für unseren Delphi-Stamm:

Am Mittwoch, 23. August 2017 Delphi-Stamm Nr. 9 in Olten
Am Dienstag, 7. November 2017 Delphi-Stamm Nr. 10 in Luzern oder Bern
Am Donnerstag, 8. März 2018 Delphi-Stamm Nr. 11 wieder in Glattbrugg 

Post has attachment

If you are using floating point calculations in DLLs created with Delphi/C++ Builder then you should know there is a bug in the RTL which affects the calculation precision and the math exception handling in an unexpected way. I have addressed this issue in Embarcadero’s Quality Central by RSP-13643. All Delphi and C++ Builder versions are affected.

Post has attachment
Wir haben einen alten Fehler in der Delphi RTL im Zusammenhang mit Fliesskommazahlen-Berechnung in DLLs entdeckt, dessen Wirkungsmechanismus bis heute nicht bekannt war und noch nicht behoben werden konnte. Kurz zusammengefasst, bei Fliesskommarechnungen in DLL's welche mit Delphi/C++ Builder erstellt wurden, können folgende unerwarteten Effekte eintreten:
1. Die Rechenpräzision kann unerwartet während dem Ablauf ändern und der Typen-Deklaration (Extended, Double oder Real) kann in diesen Fällen nicht mehr vertraut werden.
2. Das Verhalten von Math-Exceptions wie EZeroDivide, EOverflow u.a. entspricht unter Umständen nicht den Erwartungen.
Ursache ist ein fehlerhaftes Überschreiben des FPU Controlwords im Exception-Handler der DLL. Dieser Effekt tritt erst auf, wenn im aufrufenden Prozess der DLL ein neuer Threads gestartet wurde, der aber seinerseits keinen Bezug zur DLL-Schnittstelle haben muss! Das Setzten des FPU Control-Words bei DLL-Funktionseintritt und Rücksetzen bei Austritt schützt leider keineswegs vor diesem Fehler, ist aber in Fällen wo die DLL mit Delphi erzeugt wird und aus einer "Fremd-gebildeten" Applikation gestartet wird, eine notwendige Massnahme. Der Fehler ist in Embarcaderos Quality-Central unter RSP-13643 eingereicht. 

Post has attachment
Hier noch die Folien zur gestrigen Session über Dependency Injection mit Spring4D.
Das Beispielprojekt ist gleich in der Präsentation auf Seite 5 als eingebetteter Zip-Kontainer mitgeliefert. In der Datei precondition.txt findet Ihr eine Anleitung, wie das Spring4D Framework bezogen und installiert werden muss, damit geliefertes Beispiel lauffähig wird.

Danke den Organisatoren! 

Post has attachment
My participation at the EKON 19 - the Delphi Developers Conference in Cologne - was a big success for me. Top sessions keep by mostly good speakers!

Post has shared content
Texas Instruments SensorTag controlled by Android device

Delphi and its new cross-platform framework FireMonkey allows me to write a demo application in a short time for connecting the Texas Instrument SensorTag by using the new low energy Bluetooth standard. The SensorTag (http://www.ti.com/tool/sensortag-sw) with its 6 sensors on board is an ideal Development Kit for exploring the ability of Bluetooth LE under Android. 
However while discovering the new technologies there were some obstacles. Unfortunately the Delphi compiler for ARM does not inform that the bit shift operations are limited to 32 bit integers only. As usual Embarcadero does not deliver in the first version a comprehensible documentation to the new Bluetooth component introduced by Delphi XE7. That is why I had to discover the differences between the FireMonkey component "TBluetoothLE" and its almost identical class "TBluetoothLEManager". In the Manager class the call back functions run in a separate thread while the component "TBluetoothLE" already contains the required synchronization functionality for using the events to control the GUI. From my point of view the sample application "ExporeDevicesLE" delivered by Embarcadero does not handle this point correctly when using the class "TBluetoothLEManager".
Overall it was a pleasure to implement such an Android application in a short time. The Delphi cross debugger works more or less as expected. When I compare the problems I saw with several versions of VxWorks I am happier to use Delphi.
PhotoPhotoPhoto
2015-02-21
3 Photos - View album

Post has shared content
Delphi reaches the TIOBE Index TOP 10!

After some years, Delphi came back to the TOP 10 of the most popular programming languages of the world :D

It is time to take more care about developer opinions and keep rising :D
Photo

Android segmentation fault for migrated Delphi XE8 Apps

Since I have migrated from XE7 to XE8 I got on several apps a segmentation fault (11) during startup (after hiding the splash screen and before entering Application.Initialize). I found the following workaround: Recreating the project file under XE8 seems to solve this issue. Up to now I could not identify the exact root cause.
Wait while more posts are being loaded