Skip to content

E-Mail senden aus Delphi iOS

Wenn man direkt aus seinem Delphi XE4 iOS Programm eine E-Mail über das Bord-eigene E-Mail Programm senden will, ist das eigentlich ganz einfach…. wenn man weiß wie.

Diese Funktionen verstecken sich im UIApplication Objekt. Dies wollen wir erstmal haben:

TUIApplication.Wrap(TUIApplication.OCClass.SharedApplication);

Dann noch eine kleine Funktion, die aus einem normalen Delphi-String eine NSURL macht:

TNSUrl.Wrap(TNSUrl.OCClass.URLWithString(NSSTR(AStr)));

Anschliessend können wir die E-Mail recht einfach versenden:

  URL := 'mailto:vorname.nachname@domain.com?subject=Test&body=Testmessage';
  SharedApplication.openURL(StrToNSUrl(URL));

Natürlich kann man "Test" und "Testmessage" durch eigene Strings (hier reichen reine Delphi-Strings) ersetzen und sich den Text/String passend konkatinieren.

Damit wir auf die UIApplication und die Typen zugreifen können, brauchen wir noch die Erweiterung der USES-Clause um iOSapi.UIKit und iOSapi.CocoaTypes

Komplett sieht das dann so aus (sorry für die Formatierung):
unit Unit1;

interface

uses
System.SysUtils, System.Types, System.UITypes, System.Classes,
System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.StdCtrls,
iOSapi.Foundation, iOSapi.UIKit, iOSapi.CocoaTypes;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
function SharedApplication: UIApplication;
function StrToNSUrl(const AStr: string): NSUrl;
{ Public-Deklarationen }
end;

var
Form1: TForm1;

implementation

{$R *.fmx}

procedure TForm1.Button1Click(Sender: TObject);
var
URL: String;
begin
URL := 'mailto:vorname.nachname@domain.invalid?subject=Test&body=Testmessage';
SharedApplication.openURL(StrToNSUrl(URL));
end;

function TForm1.SharedApplication: UIApplication;
begin
Result := TUIApplication.Wrap(TUIApplication.OCClass.SharedApplication);
end;

function TForm1.StrToNSUrl(const AStr: string): NSUrl;
begin
Result := TNSUrl.Wrap(TNSUrl.OCClass.URLWithString(NSSTR(AStr)));
end;

end.

Wenn es im iOS Simulator nicht funktioniert, liegt das daran, daß dort kein E-Mail Account definiert ist :-)

Größe der ausführbaren Datei (EXE) verbessern

Immer wieder höre ich von Kunden, daß die Dateigrößen von Delphi Programmen (ob nun VCL oder FireMonkey) gigantisch gewachsen sei.

Generell ist dies richtig, ist aber auch den neuen Funktionalitäten geschuldet kann aber auch daran liegen, daß man die Build-Konfigurationen noch nicht ganz verstanden hat.

Einen ganz entscheidenden Einfluß hat die Build-Konfiguration:

Hier sollte man für die endgültige Erstellung "Release" auswählen. Nur für Entwicklungs/Testzwecke sollte man auf Debug bleiben.

Siehe auch http://docwiki.embarcadero.com/RADStudio/XE3/de/Überblick_zu_Build-Konfigurationen

Etwas Optimierung erhält man noch durch das Ausschalten von RTTI Informationen in den Executables. Dies geht natürlich nur, wenn man auch kein RTTI in seiner Anwendung benutzt. Weiß man nicht, was RTTI ist, kann man das auch ausschalten :-)

program Project1 ; 

{$WEAKLINKRTTI ON} 
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])} 

uses 
Vcl.Forms , 
Unit1 in 'Unit1.pas' {Form1} ; 

{$R *.res} 

begin 
  Application.Initialize ; 
  Application.MainFormOnTaskbar : = True ; 
  Application.CreateForm ( TForm1 , Form1 ) ; 
  Application.Run ; 
end .

Durch das Einfügen der Compilerdirektiven wird RTTI (weitestgehend) ausgeschaltet und die Größe der EXE Datei noch ein wenig reduziert.

Mein Kollege William Wittwer hat das in einer Tabelle mal zusammengefasst (leere Anwendung, ohne Komponenten/Units, die eingebunden sind):

(Quelle: http://blogs.wittwer.fr/whiler/2013/04/26/reduire-la-taille-application-delphi/

FireMonkey e-Book in deutscher Sprache von Harry Stahl

ab sofort als Kindle Edition verfügbar:
http://www.amazon.de/dp/B00BC1HGUS

Weitere Infos auch in seinem Blog
http://www.devpage.de/blog/firemonkey.htm

Happy Birthday Delphi…..

… alles Gute zum 18jährigem.

Von Windows 3.1 über Windows 7 zu 64 Bit und Mac OS X

FastReport für FireMonkey (Win/Mac)

…. ist da. Und als kostenfreies Update hier erhältlich:

http://cc.embarcadero.com/item/29153

Unterschiede finden sich hier:

http://www.fast-report.com/en/products/report-for-delphi-fastreport-4-feature-matrix.html/

und hier:

http://www.fast-report.com/en/fast-report-fmx-comparison/

(Für Windows und Mac OS X)

Have fun!

Neue Seminare in Dresden, Frankfurt, Linz/AT, Fürstenfeldbruck, Bremen, Dortmund, Hannover, Berlin und Freiburg

Strategisch günstig über die Republik verteilt :-)
Dabei geht es um Delphi XE3 und RAD Studio XE3.
Anmeldung, Info und genaue Orte/Uhrzeiten findet ihr unter:
Direkte Anmeldung auch über die Links:
http://www.amiando.com/RADXE3_Frankfurt (11. Oktober)

Hotfixe 1, 2 und 3 für RAD Studio, Delphi und C++Builder XE3

…sind jetzt verfügbar. Sie fixen einige Dinge, die in den README Dateien näher beschrieben sind.

RAD Studio XE3 Hotfix 1
http://cc.embarcadero.com/item/29050

This Hotfix addresses an issue with ShowMessage in a FireMonkey application on certain locales on Mac OS X.

RAD Studio XE3 Hotfix 2
http://cc.embarcadero.com/item/29051

This Hotfix addresses a regression with using the GestureManager in a FireMonkey application.

RAD Studio XE3 Hotfix 3
http://cc.embarcadero.com/item/29052

This Hotfix addresses an issue in using SQLite driver on the Professional edition.

Veranstaltungen im Q2 (April bis Juni)

Wir sind mal wieder unterwegs:

http://www.embarcadero-info.com/de/in_action_live/index.html

Und zwar in Wien, Münster, Nürnberg, Stuttgart, Kassel, Bremen, dem wunderschönen Offenbach am Main (bei Frankfurt) und Berlin.

Zu sehen gibt’s natürlich FireMonkey und Delphi XE2 auf Windows und Mac.

In dieser sehr erfolgreichen Veranstaltungsreihe mit mehr als 1000 Teilnehmern in den letzten Monaten besuchen wir dieses mal auch entlegenere Orte, die wir eher selten (oder bis heute noch gar nie :-)) angesteuert haben. So führt es mich diesmal in meine Heimatregion (Münster, geboren bin ich in Westfalen :-)) aber auch in die Weltmetropolen Wien und Berlin.

Info, Agenda, Anmeldung alles unter der oben angegeben Webadresse.

Ich freu mich auch Sie!

- Matthias Eißing

Angebot für Delphi, C++Builder und RAD Studio XE2 Kunden

Wenn man aktuell ein Delphi, C++Builder oder ein RAD Studio erwirbt, bekommt man weitere Datenbankwerkzeuge kostenfrei dazu:

Kaufen Sie Delphi XE2 oder RAD Studio XE2…
Und Sie erhalten KOSTENFREI dazu …
Professional Edition
· Rapid SQL XE2 – GRATIS!
· FastCube – GRATIS!
Enterprise Edition
· Rapid SQL XE2 – GRATIS!
· FastCube – GRATIS!
· DB Optimizer XE2 – GRATIS!
Architect Edition
· Rapid SQL XE2 – GRATIS!
· FastCube – GRATIS!
· DB Optimizer XE2 – GRATIS!
· DB Change Manager XE2 – GRATIS!

Dieses Angebot endet am 30. Dezember. Den Zugrif auf die kostenfreien Produkte haben Sie bis zum 15. Januar 2012.

On the road again…. DOAG und RAD Roadshow

DOAG Konferenz in Nürnberg

Schon nächste Woche stellen wir von Embarcadero Deutschland auf der DOAG aus.

Ich werde auch von Dienstag bis Donnerstag in Nürnberg anwesend sein.

Dreh- und Angelpunkt sind die Datenbank Produkte aus dem Hause Embarcadero: ER/Studio, Change Manager, DBArtisan, Rapid SQL, DB Optimizer und weitere.

RAD Roadshow

Desweiteren sind wir (in erster Linie Daniel Wolf und ich) auf der RAD Roadshow 2011

22.11 in München
23.11 in Frankfurt
29.11 in Hamburg
30.11 in Düsseldorf

Für einen sinnvollen Kommentar, warum Delphi XE2 so toll ist, bekommt ihr von mir einen Gutschein (50%) per E-Mail zugesandt (bitte E-Mail Adresse nicht vergessen)

Bad Behavior has blocked 180 access attempts in the last 7 days.

Close