Announcement

Collapse
No announcement yet.

Attachment

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Attachment

    hallo,<br>
    <br>
    wie kann man beim Aufruf von email <br>
    ShellExecute(0,nil,@(Sender as TPanel.Caption[1],nil,nil,SW_NORMAL);<br>
    eine Datei als Anhang übergeben.<br>
    <br>
    grüße Hermann<br>

  • #2
    Hallo,

    hier der korrekte Code für das Senden einer Mail:
    <pre>
    var
    aEMail : String;
    begin
    aEMail:='mailto:' + Label1.Caption;
    ShellExecute(Handle,'open',PChar(aEMail),nil,nil,S W_SHOWNORMAL);
    end;
    </pre>
    Einen Anhang kann man mit ShellExecute nicht versenden.

    Gruß Ul

    Comment


    • #3
      Hi

      Nochwas, solche Konstrukte wie

      <pre>

      @(Sender as TPanel).Caption[1]

      oder

      @S[1], S vom typ String

      </pre>

      sehe ich sehr häufig. Diese sind mit LongStrings absolut FALSCH.

      Ein LongString ist ein Zeiger, mit S[1] greife ich über den Zeiger auf das erste Zeichen zurück. Nun, was passiert wenn der LongString leer also S := '' ist ?? Natürlich ist der Zeiger nil, also würde ein Panel mit leerer Caption beim obigen Konstrukt garantiert eine Zugriffsverletzung erzeugen.

      Faizit: der Vorschlag von Uli ist also in mehrfacher Hinsicht richtiger, da PChar(String('')) = nil ist und höchstens ShellExecute() was anzumeckern hätte, aber keinerlei Accessviolations provoziert.

      Gruß Hage

      Comment

      Working...
      X