Jump to content

[Delphi] IOS Programmierung mit Delphi XE4


Recommended Posts

Hallo,

 

nachdem jetzt Delphi XE4 das Licht der Welt erblickt hat, wollte ich doch mal schnell ein kleines Projekt für IOS aufsetzen. Während die Delphi-Bindings für die Windows-Platform sher gut funktionieren, bekomme ich die Bindings für die IOS-Plattformprogrammierung partout nicht eingebunden. Die Compilerdirektiven der Bindings gehen anscheinend davon aus, das Delphi immer nur Windows-Code zu sein scheint (während FPC auch Unix sein darf). Allerdings sind für IOS einige Biliotheken nicht verfügbar.

 

Könnte mir bitte jemand die Richtung weisen, wie ich die IOS-Plattform mit Delphi XE4 (und nicht mit FPC) comilieren kann. Ein einfaches Beispiel (sofern es einfach ist^^) wie die Bindings abgeändert werden müssen, würde schon reichen. Danke.

Link to comment
Share on other sites

In der Tat scheint die neue XE4 ein echter Quantensprung zu sein. Ich würde noch weiter gehen, und die nächste Version abwarten, die in Kürze erscheint, und dann auch  die Android-Platform (!)unterstützen soll. Für die Cross-Entw. muss man sich von der VCL verabschieden und den Firemonkey-Framework verwenden.

Link to comment
Share on other sites

Das ist richtig. Im Moment wird angenommen, dass Delphi IDE == Windows bedeutet. Das funktioniert für iOS dann natürlich nicht mehr.

 

Ich habe mir das gerade mal angesehen und es fehlt zumindest die Sockets Unit. Ich konnte allerdings bisher nicht herausfinden was man tun muss um die wieder zu bekommen, oder wie man mit Delphi unter iOS Sockets benutzt.

Link to comment
Share on other sites

Hilft das ev. weiter:

https://forums.embarcadero.com/message.jspa?messageID=480211

 

In dem Zusammenhang wurde bisher auch nur die Indy-Komponenten genannt, dass ist für die OpenSource-Bindings nicht ideal :( Aber zumindest nutzt Indy die WinSock unter Windows, Posix auf Mac, libc unter Kylix, etc. Wie gesagt die mobile-Erweiterung auch im Hínblick auf Android wird anscheinend bald erscheinen, ev. wird das o.g. Problem dann lösbarer.

 

Unter IOS wird für die TCP Sockets das CFNetwork Framework genannt:

http://oreilly.com/iphone/excerpts/iphone-sdk/network-programming.html

Link to comment
Share on other sites

Danke für eure Kommentare.

 

Während ich die Units BlockingQueue sowie TimedSemaphore leicht auf Delphi XE4  + mobile für IOS umschreiben konnte, übersteigen die notwendigen Änderungen bei IPConnection absolut meine Fähigkeiten. Ich verstehe, dass ich mittels Einbinden von den nativen Mac sowie IOS Frameworks (MACApi.XXX z.B. MACApi.CoreFoundation für das CFNEtwork-Framework sowie IOSApi.XXX z.B. IOSApi.Foundation NSURL-Framework) sockets-Funktionalität bekomme. Dafür sind meine Programmierfähigkeiten doch zu stark eingestaubt. Nicht ohne Grund bin ich auf Delphi XE4 aufmerksam geworden und hatte Blut geleckt.

 

Aber so wie ich das jetzt sehe, ist es dann doch wohl einfacher mit Xcode die ganze Sache zusammenzubasteln. Außerdem sparts 'ne Menge Geld. ;)

Link to comment
Share on other sites

Okay, ich hab das mal versucht und kann wirklich "uses Macapi.CoreFoundation" verwenden. Aber "uses Macapi.CocoaTypes" gibt z.B. einen Fehler obwohl das laut Dokumentation auch gehen sollte.

 

Die Dokumentation dazu ist sehr dünn von der Delphi Seite her. Laut Apple Dokumentation gibt es CFSocket im CoreFoundation Framework. Aber ich konnte nicht herausfinden wie man das dann in Delphi verwendet. Es scheint weder CFSocket, noch CFSocketRef, noch TCFSocket oder TCFSocketRef als Typ zu geben. Da steh ich auf dem Schlauch. Ich kann auch keinerlei Beispielcode dazu finden, wie das funktionieren soll.

 

Edit: Nachdem ich noch mal ein neues Projekt angelegt habe kann ich jetzt CFSocketRef verwenden.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...