Announcement

Collapse
No announcement yet.

Word 2000 mit Delphi 2

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

  • Word 2000 mit Delphi 2

    Ich habe vor ein paar Jahren eine Anwendung geschrieben, die WinWord über Ole mit einem Dokument startet. Es funktionierte bisher mit Word 95 und Word 97, aber nicht mehr mit Word 2000. Ich erhalte bei der Zeile:

    WinWord := CreateOleObject('word.application.9'); // oder, alternativ:

    WinWord := CreateOleObject('word.basic');

    immer die Fehlermeldung:

    "durch MESSAGE FILTER wird angezeigt, dass die Anwendung ausgelastet ist".

    Frage: Kann Delphi 2 Ole Automation überhaupt mit Word 2000 funktionieren oder muss ich gleich auf Delphi 4/5 wechseln (das wäre schon möglich, allerdings gibt es dann wieder Inkompatibilitäten mit den Quickreport-Komponenten).

  • #2
    Hallo,

    mit den folgenden Aufrufen kann ich Word 2000 über die späte Bindung fernbedienen. Ich setzte zwar Delphi 5 ein, allerdings sollte es mit Delphi 2 auch gehen, wenn als PROGID die Zeichenkette <b>'Word.Application'</b> verwendet wird. Allerdings steht <b>WordBASIC</b> nicht mehr zur Verfügung, statt dessen muss man zu den modernen VBA-Methoden wechseln:
    <pre>
    const
    cDOC1PATH = 'C:\Ablage\Test.doc';

    procedure TForm1.Button1Click(Sender: TObject);
    var
    vWord : OleVariant;
    vPara : OleVariant;
    begin
    vWord := CreateOleObject('Word.Application');
    vWord.Visible := True;
    vWord.Documents.Open(FileName := cDOC1PATH);
    vPara := vWord.Documents.Item(1).Paragraphs.Item(3);
    vPara.Range.Words.Item(2).Bold := True;
    ShowMessage('Fertig');
    vWord.Quit(False);
    end;
    </pre>
    Im Dokument wird in der 3. Zeile das 2. Wort in Fettschrift hervorgehoben

    Comment


    • #3
      Hallo Andreas,
      Danke für den Tipp, um Word 2000 mit late binding zu starten.
      Leider funktioniert es nicht. Ich habe seither verschiedene Versuche unternommen:
      - mit Delphi 2, 4 und 5,
      - den Datentypen Variant (D2) bzw. OleVariant (D4, D5)
      - den PROGID's 'Word.Application', 'Word.Application.8',
      'Word.Application.9' und 'Word.Basic' (stehen bei mir alle in der Registrierung)
      - sowie dem exakten Code gemäss deiner Vorlage

      Immer erhalte ich die Fehlermeldung
      "durch MESSAGE FILTER wird angezeigt, dass die Anwendung ausgelastet ist".
      Gelegentlich lässt sich Word2000 dann mit einem neuen Versuch und einer anderen PROGID trotzdem starten, mir ist aber nicht klar, wann und warum.
      Offensichtlich liegt das Problem weder an der Delphi-Version noch an Word2000 sondern an meiner Konfiguration (Windows 95b) und ev. daran, dass Restbestände von Word95 und Word97 noch in meiner Registrierung "herumgeistern". Sagt dir obige Fehlermeldung etwas?

      Grusss
      Christian Häl

      Comment


      • #4
        Hallo,

        läuft da etwa ein Norton-Virenscanner im Hintergrund mit? Wenn ja, würde ich derartige Teile versuchsweise deaktiveren. Nach dem ganzen <i>Melissa</i>- und <i>I love you</i>-Virenrummel haben es einige Anbieter von Virenscannern übertrieben..

        Comment


        • #5
          Hallo Andreas,
          Tatsächlich, Norton Antivirus hat Word 2000 "lahmgelegt". Ich habe den Virenscanner vollständig entfernt (nicht bloss deaktiviert) und siehe da: Word 2000 lässt sich auf alle Arten wieder starten.
          Frage: welche Virenscanner sind in einem solchen Fall überhaupt einsetzbar?
          Christian Häl

          Comment


          • #6
            Hallo,

            Virenscanner gehören zur der Software-Kategorie, die über Internet-Updatefunktionen fast täglich geändert werden könnten. Daher muss man im konkreten Einzelfall ausprobieren, welches Programm geeignet ist (aber auch dann hat man keine Gewissheit, das es nach dem nächsten Online-Update noch funktioniert)

            Comment

            Working...
            X