Announcement

Collapse
No announcement yet.

Zugriff auf Interface

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

  • Zugriff auf Interface

    Hallo Gemeinde,

    aus einer Applikation heraus wird Outlook gestartet, eine neue Mail generiert und mit Text versehen. Geht alles. Nun soll (sofern vorhanden) die in Word gespeicherte Signatur miteingefügt werden. Dafür gibt es das Word Objekt "EmailSignature". In der Datei Word_TLB finde ich das als Interface. Frage ist, wie greife ich darauf zu? In Basic geht das einfach mit


    With Application.EmailOptions.EmailSignature
    .NewMessageSignature = "Signature1"

    Wenn ich aber Word Create (selten dämliches Wort...) geht das so aber nicht. Wer weiss den richtigen "Dreh"?

    Ach ja: es wird D$, W2K und Word2000 verwendet.

    Vielen Dank

    Uwe

  • #2
    <pre class="sourcecode"><code>
    <b>unit</b> Unit1;

    <b>interface</b>

    <b>uses</b>
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, Word2000, StdCtrls;

    <b>type</b>
    TForm1 = <b>class</b>(TForm)
    Button1: TButton;
    <b>procedure</b> Button1Click(Sender: TObject);
    <b>private</b>
    <font color="#003399"><i>{ Private-Deklarationen }</i></font>
    <b>public</b>
    <font color="#003399"><i>{ Public-Deklarationen }</i></font>
    <b>end</b>;

    <b>var</b>
    Form1: TForm1;

    <b>implementation</b>

    <font color="#003399"><i>{$R *.dfm}</i></font>

    <b>procedure</b> TForm1.Button1Click(Sender: TObject);
    <b>begin</b>
    <b>with</b> TWordApplication.Create(Self) <b>Do</b>
    <b>try</b>
    Connect;
    Application.EmailOptions.EmailSignature.NewMessage Signature := <font color="#9933CC">'Signature1'</font>;
    <b>finally</b>
    Free;
    <b>end</b>;
    <b>end</b>;

    <b>end</b>.

    </code></pre><p>
    Schöne Grüße, Mario Noac
    Schöne Grüße, Mario

    Comment


    • #3
      Hi Mario,

      habe leider nur D4 - d.h. keine Serverkomponenten.

      Gruss
      Uw

      Comment


      • #4
        Hi Mario,

        beim Tippen ist wohl die Feststelltaste gehangen...

        Ich habe "nur" D4 - d.h. keine Serverkomp. und muss den Zugriff per Hand stricken.

        Gruss
        Uw

        Comment


        • #5
          Wie strickst Du den Zugriff im Moment von Hand? Hast Du mal ein Beispiel?<p>
          Kann man mit Delphi 4 Typbibliotheken importieren?<p>
          Schöne Grüße, Mario Noac
          Schöne Grüße, Mario

          Comment


          • #6
            Hi Mario,

            ich mache das im Moment mir einem OLEVariant:
            <pre>
            procedure TfmInfoCenter.E_SendDocAsMail;
            var
            Outlook : _Application;
            Word : Variant;
            aMail : MailItem;
            begin
            try
            Outlook := CoApplication_.Create;
            Word:= CreateOleObject('Word.Application');
            Word.EmailOptions.EmailSignature.NewMessageSignatu re := 'Signature';
            aMail := Outlook.CreateItem(olMailItem) as MailItem;
            aMail.Body:= MailData.GetAnrede + MailData.GetMailtext
            + MailData.GetGewicht + MailData.GetFracht
            + MailData.GetSchlusstext;

            aMail.Display(False);
            finally
            Outlook := nil;
            Word.Free;
            MailData.Free;
            end;
            end;
            </pre>
            Fehlermeldung gibt es so keine - aber es gibt auch keinen Eintrag in die neue Mail. Wenn ich frühe Bindung einsetze (wie bei Outlook) geht es überhaupt nicht - jedenfalls nicht so.

            MailData.GetAnrede u.s.w. sind Funktionen aus einem selbstgebauten Objekt.

            Gruss
            Uw

            Comment


            • #7
              Wenn keine Fehlermeldung kommt, sollte Dein Aufruf OK sein, vermutlich liegt dein Problem im Prinzip. Hast Du das Setzen der Signatur mal mit dem Makrorecorder von Word probiert? Du erzeugst zwar eine neue Signatur, aber woher soll Outlook wissen, dass es die auch nehmen soll? Ich denke mal, da musst Du einfach noch ein bischen probieren. Am besten unter der VBA von Word, da ist ja wenigsten eine Hilfe verfügbar und vielleicht stehen da ja noch ein paar Optionen, die man noch setzen kann/muss.<p>
              Schöne Grüße, mario Noac
              Schöne Grüße, Mario

              Comment


              • #8
                Die Signatur existiert ja bereits. Es geht darum, diese Signatur in den Mailbody hineinzubringen (Menü: Einfügen--> Signatur). Ich dachte dieses "Word.EmailOptions.EmailSignature.NewMessageSignat ure := 'Signatur'" wäre der dazu notwendige Befehl (aus MSDN) - ist er aber anscheinend nicht.

                Wenn ich es nicht bald finde, dann müssen meine People Ihre Signatur halt mit der Hand oder aus dem Menü eintragen...

                Danke für Deine Hilfe.

                Gruss
                Uw

                Comment


                • #9
                  Hmm, der richtige Befehl scheint es schon zu sein...<br>
                  Du könntest aber noch mal prüfen, ob Word.EmailOptions.EmailSignature.NewMessageSignatu re auch nachher wirklich den gewünschten Wert enthält. Vielleicht existiert ja diese Signatur gar nicht? Evtl. könntest Du den Start von Outlook noch mal nach dem Signaturumschalten probieren. Mehr fällt mir aber dazu auch nicht ein <p>
                  Schöne Grüße, Mario Noac
                  Schöne Grüße, Mario

                  Comment


                  • #10
                    Word.Emailoptions... hat den Wert des Namens, den Du der Signatur gibst. Ich habe den Verdacht, dass das Ganze nur funktioniert, wenn man tatsächlich Word als e-Mail Editor verwendet. Hab im MSDN noch herausgefunden, dass emailsignatur noch eine Property namdns Item hat - die werd ich mal testen.

                    Leider gibt es für das Einfügen der Signatur keinen Shortcut, sonst hätte man u.U. was mit sendkeys versuchen können.

                    Ist doch nicht alles so supergut...

                    Danke noch mal fürs "mitbrainen"

                    Viele Grüsse
                    Uw

                    Comment

                    Working...
                    X