![]() |
Delphi-Version: 7
Zeilenumbruch in String im ShellExecute
Hallo Liebe Leute,
mioch hat nach einigen Jahren das Programmier-Fieber wieder gepackt. Eigentlich auch erfolgreich, besonders auch durch dieses Forum, aber jetzt habe ich eine Frage, zu der ich nichts finden konnte. Folgende Situation: Ich möchte einen String mit ShellExecute an Outlook übergeben. Formatiert habe ich die Zeilenumbrüche mit #13#10. Leider werden die Umbrüche aber nicht an Outlook weitergegeben. Der String:
Code:
Wenn ich das ganze im Memo oder ShowMessage ausgebe, dann stimmt die Formatierung. Bei der Übergabe in den Outlook-Body, sind aber die Zeilenumbrüche weg :cry:
gesamt := 'Der Kunde '+kdaten+ ' '+edit1.text+' '+edit2.text+' wünscht eine telefonische Beratung.' +#13#10+ 'Bitte beraten Sie zu folgenden Themen '+#13#10 +wunsch +#13#10+ 'Bemerkungen: '+bemerkungen +#13#10 +#13#10+ 'Meine Daten: ' +#13#10+'Name: '+ kollege+#13#10+ 'Personalnummer: '+persnr +#13#10+ 'Rückrufnummer: '+ handy;
Hier die Übergabe:
Code:
Ich denke, dass liegt daran, dass ich PCHAR benutzt habe und deswegen die Formatierung nicht übernommen wird.
shellExecute(Application.Handle, 'open', PCHAR('mailto:'+email+'?subject=TOM&body='+gesamt) , nil, nil, SW_SHOW);
Wenn ihr eine Idee oder Alternative kennt, dann bitte her damit. DANKE im Vorraus und schöne Grüße aus Wuppertal. Michael |
AW: Zeilenumbruch in String im ShellExecute
Hi Michael und ein herzliches Willkommen in der DP! :dp:
Wenn man ![]() |
AW: Zeilenumbruch in String im ShellExecute
Jupp, einfach alles, was vom ASCII abweicht oder ein Steuerzeichen darstellt und besser auch noch das %, mit %{hex}{hex} ersetzen.
Das Leerzeichen besser als + anstatt %20. #32 > c < #128 |
AW: Zeilenumbruch in String im ShellExecute
Vielleicht hilft das hier weiter:
![]() |
AW: Zeilenumbruch in String im ShellExecute
Danke vielmals. Hat geklappt mit %0D%0A!
Allerdings konnte ich die Parameter nicht in die Stringvariable packen, sondern musste sie in den PCHAR einfügen. Siehe hier:
Code:
Nochmals vielen Dank!
ShellExecute(Application.Handle, 'open',PCHAR('mailto:'+email+'?subject=TOM&body=Der Kunde %0D%0A'+kdaten+ ' '+edit1.text+' '+edit2.text+' wünscht eine telefonische Beratung.%0D%0A'+ 'Bitte beraten Sie zu folgenden Themen %0D%0A' +wunsch +'%0D%0A Bemerkungen: '+bemerkungen +'%0D%0A %0D%0A' + 'Meine Daten: %0D%0A Name: '+ kollege+'%0D%0A Personalnummer: '+persnr +'%0D%0A Rückrufnummer: '+ handy), nil, nil, SW_SHOW);
@ DeddyH: Sehr gute Signatur!! :-D |
AW: Zeilenumbruch in String im ShellExecute
Danke :D. An Deiner Stelle würde ich aber eine Zwischenvariable einbauen, um die Übersicht zu erhöhen, ggf. sogar noch mit einem konstanten Formatstring.
Delphi-Quellcode:
const
Mailtext = 'mailto:%s?subject=TOM&body=Der Kunde %%0D%%0A%s %s %s wünscht eine telefonische Beratung.' + '%%0D%%0ABitte beraten Sie zu folgenden Themen %%0D%%0A%s%%0D%%0A Bemerkungen: %s%%0D%%0A %%0D%%0A' + 'Meine Daten: %%0D%%0A Name: %s%%0D%%0A Personalnummer: %s%%0D%%0A Rückrufnummer: %s'; var Mailprogram: string; begin Mailprogram := Format(Mailtext, [email, kdaten, edit1.text, edit2.text, wunsch, bemerkungen, kollege, persnr, handy]); ShellExecute(Application.Handle, 'open',PCHAR(Mailprogram), nil, nil, SW_SHOW); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz