![]() |
Delphi-Version: 10.2 Tokyo
Daten aus Delphi in Thunderbird einfügen.
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,
Ich arbeite mit Delphi Tokyo 10.2 und Windows 10. Ich bin dabei aus einem Delphi Programm Daten in ein Memo einzulesen und dann das Memo in mein E-Mail Programm Thunderbird exportieren. In der Memo sind die Daten ordentlich formatiert. Wenn Sie aber im E-Mailprogramm eingefügt wurden ist jegliche Formatierung verschwunden. Die im Memo eingefügten Leerzeichen sind alle verschwunden. Das ist mir eigentlich unverständlich, da Leerzeichen ja auch Zeichen sind. Ich habe mal 2 Screenshots angehängt. Das erste "Kosten000.jpg" zeigt wie die Daten im Memo aussehen und das zweite "Thunderbird000.jpg" zeigt wie sie in der E-Mail ankommen. Vielleicht weiß ja jemand von Euch wie man das Problem lösen kann. Ich möchte schon gerne, dass Die Daten in der E-Mail genauso formatiert werden wie sie in der Memo sind. Ich würde mich freuen, wenn mir jemand hier helfen könnte. Gruß Oldmann |
AW: Daten aus Delphi in Thunderbird einfügen.
Sind im Memo Tabulatoren, so dass der Text dort optisch anders formatiert ist?
Auf welchem Weg bekommst Du überhaupt die Daten ausgetauscht? Geht auf dem "Weg" was verloren? Ohne genauere Infos zur Art der Datenübergabe, kann man da kaum sinnvolle Hilfestellung geben. Die Info "Ich hab' zwei Programme und die Daten aus dem einen sehen im anderen anders aus!", ist etwas dürftig. Wenn im Delphiprgramm die Auffüllung zwischen Text und Betrag per Leerzeichen erfolgt, könnte es auch sein, dass auf dem Weg nach Thunderbird mehrfache Leerzeichen durch ein einzelnes Leerzeichen ersetzt werden. Könnte bei Tabulatoren analog sein. |
AW: Daten aus Delphi in Thunderbird einfügen.
Nö. Die Leerzeichen sind noch da. Sie nach den Ziffern von der Nummerierung. Was aber verloren geht, scheinen die Tabs (#9) zu sein.
|
AW: Daten aus Delphi in Thunderbird einfügen.
Nö, es scheint immer nur ein Leerzeichen da zu sein, ob es vorher mal viele waren oder Tabs oder 'ne beliebige Kombination aus Leerzeichen und/oder Tabs, kann man den Screenshots nicht entnehmen.
|
AW: Daten aus Delphi in Thunderbird einfügen.
Zitat:
|
AW: Daten aus Delphi in Thunderbird einfügen.
Zitat:
|
AW: Daten aus Delphi in Thunderbird einfügen.
Vermutlich ist im Thunderbird HTML eingestellt für das Verfassen neuer Mails. Im Textmodus können auch mehrere aufeinanderfolgende Leerzeichen und vermutlich auch Tabs eingefügt werden.
Grüße Dalai |
AW: Daten aus Delphi in Thunderbird einfügen.
Hallo,
erst mal Danke für das rege Interesse an meinem Problem. Erst mal ein paar Hinweise zu Euren Fragen. Thunderbird war zum Senden in HMTL und Reintext eingestellt. Auch wenn ich nur Reintext einstelle ist das Problem das gleiche. Im Memo ist "Courier New" eingestellt. Die Zwischenräume sind mit Leerzeichen aufgefüllt. Memo1 enthält den Text. Memo1 wird gefülllt mit: Form17.Memo1.Lines.Add(FilterGrid1.cells[0,2]+' '+zahl+' '+preis); Der Datentransport sieht folgendermassen aus: var MMessage : TMapiMessage; Fehler : Integer; Empfaenger : Array[0..1] of TMapiRecipDesc; Absender : TMapiRecipDesc; m_text:string; begin If CheckBox1.checked = true Then m_text:=Memo2.Text; with MMessage do begin ulReserved := 0; lpszNoteText := PAnsiChar(AnsiString(Memo1.text+#10+m_Text)); lpszSubject := PAnsiChar(AnsiString(Edit11.text)); lpszMessageType := nil; lpszDateReceived := nil; lpszConversationID := nil; flFlags := 0; // Absender festlegen Absender.ulReserved:=0; Absender.ulRecipClass:=MAPI_ORIG; Absender.lpszName:= PAnsiChar('Absender'); Absender.lpszAddress:='';//PAnsiChar(AnsiString(Memo1.text)); //Emailadresse Absender Absender.ulEIDSize:=0; Absender.lpEntryID:=nil; lpOriginator := @Absender; //Empfänger festlegen ... hier ein Empfänger nRecipCount := 1; Empfaenger[0].ulReserved:=0; Empfaenger[0].ulRecipClass:=MAPI_TO; Empfaenger[0].lpszName:= PAnsiChar('');//Empfängername if RadioButton1.Checked=True then Empfaenger[0].lpszAddress:= PAnsiChar(AnsiString(Edit8.Text));//Emailadresse if RadioButton2.Checked=True then Empfaenger[0].lpszAddress:= PAnsiChar(AnsiString(Edit9.Text));//Emailadresse // Empfaenger[0].lpszName:= PChar('');//Empfängername // Empfaenger[0].lpszAddress:= PChar('');//Emailadresse Empfaenger[0].ulEIDSize:=0; Empfaenger[0].lpEntryID:=nil; lpRecips := @Empfaenger; nFileCount := 0; lpFiles := nil; end; Fehler := MapiSendMail(0, 0, MMessage, MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION, 0); case fehler of 0 : ; MAPI_E_USER_ABORT : showmessage('Nutzerabbruch'); else showmessage('Fehler'); end; Close; Copy1; end; gruß Oldmann |
AW: Daten aus Delphi in Thunderbird einfügen.
Kannst Du vllt mal zu Fuß einfach Stringliterale einfügen, ohne das Ganze drumherum? Und beobachten, was drüben ankommt?
Delphi-Quellcode:
usw...
lpszNoteText := PAnsiChar(AnsiString('testblah'));
|
AW: Daten aus Delphi in Thunderbird einfügen.
Hallo,
das sieht auch nicht besser aus. Eingegeben habe ich: 'teststring abc' Im Mailprogramm angekommen ist: teststring abc oldmann |
AW: Daten aus Delphi in Thunderbird einfügen.
Hallo,
zu meiner Antwort von eben. Auch hier werden die Leerzeichen aus meiner Antwort entfernt. Eingegeben habe ich: 'teststring abc'mit 6 Leerzeichen zwischen den Worten. Es wird aber nur 1 Leerzeichen angezeigt. Eigentlich das gleiche Problem wie meins. oldmann |
AW: Daten aus Delphi in Thunderbird einfügen.
Das sieht auf den ersten Blick verdächtig nach einer HTML Formatierung/Darstellung aus. Dabei werden aus mehreren Leerzeichen Eines.
Mglw hast Du mittels Tabellen mehr Glück. |
AW: Daten aus Delphi in Thunderbird einfügen.
In HTML-Ausgaben werden (für gewöhnlich) mehrfach vorkommende Leerzeichen ignoriert.
Als Quelltext:
Code:
und einfach hier eingefügt: "testtext mit 6 Leerzeichen"
"testtext mit 6 Leerzeichen"
Das ist ein absolut normales, gewöhliches und gewolltes Verhalten und kein Implementierungsfehler (wo auch immer). Möchte man die explizite Ausgabe von mehreren Leerzeichen, so sind diese durch zu ersetzen. ![]() |
AW: Daten aus Delphi in Thunderbird einfügen.
Hallo,
ich habe das probiert mit  . Ich habe das einfach mit + + in den String eingefügt. Da meckert Delphi mit 'Undeklarierter Bezeichner'. Wie muß ich also das   verwenden??? Ein kleines Beispiel wäre Hilfreich. Gruß oldmann |
AW: Daten aus Delphi in Thunderbird einfügen.
Du muss die Leerzeichen durch ersetzen. AnsiReplacetext,StringReplace oder sowas.
ist Text, eine Zeichenfolge, und hat nichts mit Delphi zu tuen, sondern ist das geschützte Leerzeichen in HTML. ![]() |
AW: Daten aus Delphi in Thunderbird einfügen.
Hallo,
ich habe jetzt versucht, so wie ich es verstanden haben mit StringReplace(grid,' ', ); die Leerzeichen umzuwandeln. Die Variable grid enthält 30 Leerzeichen. Leider wird in Delphi das Zeichen   als 'Undeklarierter Bezeichner' nicht erkannt. Was mache ich Verkehrt ?? Gruß oldmann |
AW: Daten aus Delphi in Thunderbird einfügen.
ist eine String, eine Zeichenfolge und kein Delphibefehl.
Strings packt man in ' Also bitte:
Delphi-Quellcode:
!
StringReplace(grid,' ',' ',[rfReplaceAll]);
|
AW: Daten aus Delphi in Thunderbird einfügen.
Hallo,
ich habe es gerade Probiert,StringReplace(grid,' ',' '); Fehlermeldung: Es gibt keine Überladene Version von StringReplace, die man mit diesen Argumenten aufrufen kann. Wie kann ich das ändern. Gruß oldmann |
AW: Daten aus Delphi in Thunderbird einfügen.
Zitat:
Delphi-Quellcode:
stringreplace(grid, ' ', ' ',[rfReplaceAll]);
|
AW: Daten aus Delphi in Thunderbird einfügen.
Hallo,
ich habe meine Leerstrings die ich zur Formatierung eingesetzt habe, jetzt mit stringreplace(grid, ' ', ' ',[rfReplaceAll]); behandelt. Die Fehlermeldung ist zwar weg, aber die Daten in der Email sehen genauso aus wie zuvor. Gruß oldmann |
AW: Daten aus Delphi in Thunderbird einfügen.
Zeig doch bitte mal den kompletten Quellcode, so ist das doch nur eine erbärmliche Raterei, wo denn da jetzt bitteschön das Problem liegen könnte.
Hast Du Dir mal den Quelltext der Mail anzeigen lassen (sollte gewöhnlich mit dem Menü unter der rechten Maustaste gehen). Sind dort die enthalten? Stringreplace ist eine Funktion, die den veränderten Inhalt liefert. Hast Du den auch irgendwie/-wo ... zugewiesen?
Delphi-Quellcode:
DasIstDieStringVariabelMit_nbsp := stringreplace(DasIstDieStringvariabelMitLeerzeichen, ' ', ' ',[rfReplaceAll]);
|
AW: Daten aus Delphi in Thunderbird einfügen.
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,
der Quelltext mit dem die E-Mail aus Delphi versand wird, ist weiter vorne auf Seite 1 enthalten. Ich habe noch einmal 2 Bilder angehängt. Mit Bild1 mit Namen 'Grid' zeigt wie die Umwandlung mit grid_n:=stringreplace(grid, ' ', ' ',[rfReplaceAll]); nach Grid_n geschieht. Das 2. Bild mit Namen Grid_n zeigt die Umwandlung. Was ich nicht verstehe ist, in Grid waren 30 Leerzeichen. In der Variable Grid_n war nach der Umwandlung nur 5 mal  . Wie man sich den Quelltext der Mail anzeigen lassen kann, konnte ich nicht finden. Gruß oldmann |
AW: Daten aus Delphi in Thunderbird einfügen.
Zitat:
* rechts oben auf Menüpunkt "Mehr" klicken, darunter dann "Quelltext anzeigen" * es öffnet sich die Quelltext-Ansicht |
AW: Daten aus Delphi in Thunderbird einfügen.
Hallo,
den Quelltext in der E-Mail anzeigen, habe ich gefunden. Leider kann ich daraus absolut nichts erkenen. So wie es aussieht, funktioniert die Umwandlung bei mir nicht wie gewünscht. Wenn ich den formatierten Text aus der Memo kopiere und dann in Thunderbird einfüge werden alle Leerzeichen korrekt angezeigt. Auf dem Weg über Delphi leider nicht. Vielleicht kennt noch jemand einen anderen Weg? Wäre schön. Gruß oldmann |
AW: Daten aus Delphi in Thunderbird einfügen.
Es wäre schön wenn du uns deinen aktuellen Delphi-Quellcode zeigen würdest und den Quelltext der Mail.
Aber bitte nicht als Bild/Screenshot! Einfach den Text per Copy/Paste hier in die Delphi-Tags (Delphi-Quellcode) oder in die Code-Tags (Quelltext der Mail). Meinethalben auch als Anhang. Entschuldige bitte, aber das scheint im Moment niemanden zu stören und ich möchte den Moderatoren hier das Moderarotiern nicht wegnehmen. Also den Text einfach so hier reinklatschen oder als Screenshot. Hilft zwar keinem und du wirst auch keine vernünftige Hilfe bekommen, aber das ist auch nicht meine Baustelle. |
AW: Daten aus Delphi in Thunderbird einfügen.
Hallo,
ich habe den Quelltext von Delphi schon auf Seite 1 veröffentlicht. Von der Memo und von Thunderbird habe ich Screenschots mitgeschickt. Ich denke die Sache ist ausgereizt. Ich habe jetzt statt Leerzeichen den'.' genommen. Das sieht zwar nicht unbedingt super aus, aber es erfüllt seinen Zweck. Ich möchte mich bei allen die sich hier Gedanken gemacht haben, ganz herzlich bedanken und die Angelegenheit hier abschließen. Vielleicht ergibt sich später nochmal eine Lösung des Problems. Also nochmal danke. Gruß oldmann:hi: |
AW: Daten aus Delphi in Thunderbird einfügen.
Liste der Anhänge anzeigen (Anzahl: 1)
Tools - Account Settings - Composition and Addressing
Erste Zeile: Compose Messages in HTML Format - uncheck Funktioniert bei mir. Zitat:
|
AW: Daten aus Delphi in Thunderbird einfügen.
Mit der Jedi Code Library und Outlook getestet funktioniert dieser Code, der die Property "HtmlBody" setzt.
Der HTML Body wird von JclMapi dann in ein HTML Attachment umgewandelt.
Delphi-Quellcode:
(getestet mit Delphi 2009)
uses
JclMapi; procedure TForm1.Button1Click(Sender: TObject); var Msg: TJclEmail; begin Msg := TJclEmail.Create; try Msg.HtmlBody := True; Msg.Body := '<html><pre>123 (hier weitere Leerzeichen...) 456</pre></html>'; Msg.Send(True); finally Msg.Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:07 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-2025 by Thomas Breitkreuz