AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zeilenumbruch in String im ShellExecute

Ein Thema von dude85 · begonnen am 7. Sep 2011 · letzter Beitrag vom 7. Sep 2011
Antwort Antwort
dude85

Registriert seit: 6. Sep 2011
2 Beiträge
 
#1

Zeilenumbruch in String im ShellExecute

  Alt 7. Sep 2011, 01:47
Delphi-Version: 7
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:
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;
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

Hier die Übergabe:

Code:
shellExecute(Application.Handle, 'open', PCHAR('mailto:'+email+'?subject=TOM&body='+gesamt) , nil, nil, SW_SHOW);
Ich denke, dass liegt daran, dass ich PCHAR benutzt habe und deswegen die Formatierung nicht übernommen wird.
Wenn ihr eine Idee oder Alternative kennt, dann bitte her damit.

DANKE im Vorraus und
schöne Grüße aus Wuppertal.

Michael
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Zeilenumbruch in String im ShellExecute

  Alt 7. Sep 2011, 06:14
Hi Michael und ein herzliches Willkommen in der DP!

Wenn man diesem Beitrag glaubt, musst du anstelle der #13#10 %0D%0A nehmen.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: Zeilenumbruch in String im ShellExecute

  Alt 7. Sep 2011, 10:11
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
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#4

AW: Zeilenumbruch in String im ShellExecute

  Alt 7. Sep 2011, 10:22
Vielleicht hilft das hier weiter: http://www.delphipraxis.net/159858-e...ooglemaps.html
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
dude85

Registriert seit: 6. Sep 2011
2 Beiträge
 
#5

AW: Zeilenumbruch in String im ShellExecute

  Alt 7. Sep 2011, 17:30
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:
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);
Nochmals vielen Dank!

@ DeddyH: Sehr gute Signatur!!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#6

AW: Zeilenumbruch in String im ShellExecute

  Alt 7. Sep 2011, 17:40
Danke . 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);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz