Hallo und
Delphi10 gibt es nicht. Wenn du damit Delphi 2010 meinst, sollte dir eigentlich dort eine Warnung wegen einer bedenklichen Typumwandlung angezeigt werden:
Belli hat folgendes geschrieben : |
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| procedure SendEMail(Empfaenger:AnsiString; Betreff,Anrede:string); var S : AnsiString; begin S:='mailto:'+Empfaenger+'?subject='+Betreff+'&body='+Anrede; ShellExecute(Application.Handle, 'open',PChar(S), nil, nil, sw_ShowNormal); end; | |
Du benutzt einen konkreten Stringtyp, nämlich AnsiString, und castest den auf einen allgemeinen Pointertyp, nämlich PChar, und übergibst das an die allgemeine ShellExecute-Funktion.
Entweder du nimmst überall Ansi (AnsiString, PAnsiChar, ShellExecuteA) bzw. Unicode (UnicodeString, PWideChar, ShellExecuteW), wofür ich allerdings keinen Grund sehe, oder du nimmst immer die allgemeinen (String, PChar, ShellExecute).