Autor Beitrag
FFKangoroo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33

WIN XP SP2
Delphi 7
BeitragVerfasst: Di 18.04.06 17:54 
Hi, ich bins mal wieder.
Kurze Erläuterung:
Mein Programm soll eine HTML Seite an Outlook oder Firefox als neue Mail übergeben.

Ansatz:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
 uses ShellApi;  

 
procedure SendMail(MailAddress : string;  
                   Subject : string;  
                   body : string);  
begin  
  ShellExecute(Application.Handle, 'open',  
               PChar('mailto:' + MailAddress + '?' +  
                     'subject=' + Subject + '&' +  
                     'body='+ Body), nilnil, sw_ShowNormal);  
end;




Aufruf:
ausblenden Delphi-Quelltext
1:
   SendMail('support@testdomain.de''testbetreff''<html>hier die htmlseite</hmtl>');					


hier Hat er die Umlaute im HTML code nicht übertragen sondern einfach aufgehört und nur den halben Code abgeliefert.
Mir wurde darauf hin geraten die Umlaute per ersetzen zu ändern.

Soweit so gut:

Das Umschreiben war kein Problem blos, die Umlaute sind nicht die einzigen Probleme. Die Kurzen Retunrns und Tabulatoren machen auch murks denn sie sind im gleichen Format(&befehl;) und werden nicht mitübergeben.

Wie kann ich die denn umschreiben, dass es geht? Oder gibt es einen anderen Weg?

Für Hilfe bin ich sehr dankbar!


Gruß

Das FFKangoroo

Moderiert von user profile iconraziel: Quote- durch Delphi-Tags ersetzt
Moderiert von user profile iconraziel: Topic aus Internet / Netzwerk verschoben am Mi 19.04.2006 um 15:17
FFKangoroo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33

WIN XP SP2
Delphi 7
BeitragVerfasst: Mi 19.04.06 12:15 
Hab jetzt mal n bissel rumgesucht.
Ergebnis:

Es liegt nicht am ganzen HTML Code, sondern am & (Ampersand) das soll irgendwie ein Accelchar sein. Dieses gibt nil aus wenn es nicht durch einen Direktbefehl aus einer Caption definiert wurde. Weiter heisst es dass durch drücken der ALT Taste dieser Befehl ausgegeben wird. Ich versteh das so wenn ich das in einen Button oder einer Menubar vor einen Buchstaben schreibe kann ich dann ALT+[Buchstabe] drücken und das Programm führt die dazu gehörige Prozedur aus(Bsp.: ALT+S bei ICQ für Senden), schön und gut aber warum verhindert es dann die Übergabe des Codes? das Memofeld ist keien Caption, sondern Text. Oder ist dieser Aufruf als Caption deklariert?
Hab auch schon versucht die ganzen & in ihre ASCII Codes darstellen zu lassen aber vergebens(hab ihn nicht gefunden! müsste normal 38 sein #38 gibt aber - aus und ORD(&) spuckt ein Fehler aus ist ungültig ($26)!

Weiss einer Rat?

Danke

FFKangoroo
FFKangoroo Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33

WIN XP SP2
Delphi 7
BeitragVerfasst: Mi 19.04.06 23:43 
Nach einer kleinen Unterredung mit einem Administrator, der mir gesagt hat das meine Problemstellung nicht ganz nachvorziehbar ist, kommt hier der neue Versuch.

Wie oben beschrieben Soll eine HTMLcode aus einem Memofeld an ein Mailprogramm übergeben werden.

Die Übergabeprozedur findet Ihr oben, sie ist die selbe wie bei mir.

Der Aufruf lautete so:

ausblenden Delphi-Quelltext
1:
 SendMail(Adresse.text, betreff.text, code);					


code ist ein String vom Typ ansistring.

In ihm steht sowas wie
ausblenden Quelltext
1:
2:
3:
<html> <Body>
Das ist eine Einladung für Uwe 
</Body></html>


Was das Programm übergibt ist aber nur:
ausblenden Quelltext
1:
2:
<html> <Body>
Das ist eine Einladung f


Das '&' nimmt er nicht mit und hört einfach danach auf mit der Übergabe. Die Frage lautet warum? Und wie kann ich es beheben?

Einfach die Umlaut codes in die richtigen Buchstaben(&uuml; -> ü) wandeln bringt nichts, denn die sind nicht das einzige Problem, gibt ja noch die ganzen anderen Befehle wie kurze retunrs und Tabulatoren die man nicht einfach umschreiben kann.

Hoffe nu ist es verständlicher.

Bedanke mich jetzt schon

FFKangoroo
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Do 20.04.06 00:18 
Hallo,

eventuell hilft Dir das weiter(der letzte Beitrag):
www.entwickler-forum...uV9kdf.1@.4a873ad0/7
da werden u.a. auch Zeilenumbrüche übertragen, anstelle von #13#10 mit '%0D%0A', wobei da die 13 und 10 in Hex umgerechnet sind.
Kannst ja auch mal dementsprechend für '&' ( #38 ) mit '%26' testen.

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
raziel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2453

Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
BeitragVerfasst: Do 20.04.06 08:10 
Aaaah, jetzt versteh ich das Problem :think:

Probiers mal statt mit deiner Ersetzfunktion mit UTF8Encode :)

_________________
JSXGraph