Entwickler-Ecke

Sonstiges (Delphi) - Frage zu ShellExecute


Henry - Di 03.06.03 18:05
Titel: Frage zu ShellExecute
Hallo,

ich habe da ein Problem, wenn ich mit hilfe von Shellexecute eine vordefinierte Mail erstellen möchte.
Das Problem liegt darin, das ich es nicht schaffe eine Zweite Zeile zu erzwingen.

Habe folgende beiden Möglichkeiten probiert:

Möglichkeit 1:

Delphi-Quelltext
1:
2:
3:
4:
5:
ShellExecute(0nil,
    PChar(
     'mailto:mailadresse@gmx.de?subject=betreff test'+
     '&Body=erste Zeile'#13 + 'zweite Zeile')
     ,nilnil, SW_NORMAL);


Möglichkeit 2:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TForm10.Label2Click(Sender: TObject);
VAR Mailtext : TStringlist;
begin
 Mailtext := TStringlist.Create;

//Mailtext erstellen
 Mailtext.Add('erste zeile');
 Mailtext.Add('zweite zeile');

 ShellExecute(0nil,
    PChar(
     'mailto:Mailadresse@gmx.de?subject=betreff test'+
     '&Body=' + Mailtext.Text)
     ,nilnil, SW_NORMAL);

 Mailtext.Free; //Freigeben der Stringlist
end;

Es wird aber bei beiden Versionen immer alles in eine Zeile geschrieben.

Wo mache ich denn einen Denkfehler?

Danke schon eimal im voraus


Delete - Di 03.06.03 18:36

Normalerweise ist ein Zeilenumbruch mit Wagenrücklauf (also zum Zeilenbeginn) nicht nur

Delphi-Quelltext
1:
#13                    

sondern

Delphi-Quelltext
1:
#13#10                    

In dem Fall musst du aber gültigen HTML-Code benutzen, quasi so, wie du es auch in einer Webseite machen würdest. Und das sieht dann eben so aus:

Delphi-Quelltext
1:
2:
3:
4:
ShellExecute(0nil,
  pchar('mailto:mailadresse@gmx.de?subject=betreff test' +
  '&body=erste Zeile%0D%0Azweite Zeile'), // <--
  nilnil, SW_NORMAL);

%0D%0A ist hierbei der Zeilenumbruch, und da ich davon ausgehe, dass dir Hex-Zahlen bekannt sind, müsste dir was auffallen. :wink:


Henry - Di 03.06.03 18:42

Danke Dir,

ich werde es sofort mal probieren.

PS: komisch, das die Schreibweise von Zahlen so einen großen Unterschied macht :)