WordApplication Komponente für Office 2007 installieren



  • audacia schrieb:

    und dann die Office 2007-Bibliotheken auswählen.

    danke, aber wo finde ich die? Dateiname ?



  • ok habe "Microsoft Word 12.0 Object Library" ausgewählt.
    Nun kommen 4 Optionen:

    Unit anlegen
    In vorhandenes Package installieren
    In neues Package installieren
    Unit dem Projekt hinzufügen

    habe das letzte gewählt, allerdings finde ich in der Toolpalette keine WordApplication Komponente 😕



  • Bernd22 schrieb:

    allerdings finde ich in der Toolpalette keine WordApplication Komponente 😕

    Instantiiere die Komponente einfach im Code.



  • audacia schrieb:

    Instantiiere die Komponente einfach im Code.

    hab ich bereits versucht:

    WordApplication WordApplication1 = new WordApplication();
    

    bekomme folgende Fehlernachricht:

    [BCC32 Fehler] main.cpp(350): E2352 Instanz der abstrakten Klasse '_Application' kann nicht erzeugt werden
      Vollständiger Parser-Kontext
        main.cpp(349): Analyse: void _fastcall TForm3::Button6Click(TObject *)
    


  • Hallo

    Die Klasse sollte zumindestens TWordApplication heißen.

    bis bald
    akari



  • hab ich auch schon probiert :(:

    [BCC32 Fehler] main.cpp(350): E2285 Keine Übereinstimmung für 'TWordApplication::TWordApplication()' gefunden
      Vollständiger Parser-Kontext
        main.cpp(349): Analyse: void _fastcall TForm3::Button6Click(TObject *)
    

    kann mir jemand ein konkretes Beispiel posten wie ich das mache?



  • Hallo

    Als VCL-Komponente ist der Konstruktor der Klasse eben nicht parameterlos. Sondern der Konstruktor will einen Zeiger zu einer anderen Komponente haben, die als Owner fungieren soll (Das sagt übrigens auch die Fehlermeldung aus). Der Owner ist für das Löschen der neuen Instanz zuständig. Du kannst entweder NULL übergeben und bist dann selber für das Löschen zuständig. Oder du übergibst this (in deiner Button-Routine ist this das Form), und spätestens beim Löschen des Form wird auch deine WordApp-Instanz gelöscht. Du kannst dann aber immer noch manuell löschen.

    bis bald
    akari



  • danke für die Info, also so meinst du ?:

    TWordApplication WordApplication1 = new TWordApplication(this);
    

    jetzt meckert er allerdings auch wieder:

    [BCC32 Fehler] main.cpp(350): E2459 Klassen im VCL-Stil müssen mit dem Operator new erstellt werden
      Vollständiger Parser-Kontext
        main.cpp(349): Analyse: void _fastcall TForm3::Button6Click(TObject *)
    


  • Hallo

    WordApplication1 muß ein Pointer sein :

    TWordApplication* WordApplication1 = new TWordApplication(this);
    

    Ich empfehle dir dringend erstmal die Grundlagen von C++ und der VCL zu lernen, bevor du dich mit so einem komplexen Problem wie OLE-Fernsteuerung von Office-Programmen beschäftigst.

    bis bald
    akari



  • akari schrieb:

    Ich empfehle dir dringend erstmal die Grundlagen von C++ und der VCL zu lernen, bevor du dich mit so einem komplexen Problem wie OLE-Fernsteuerung von Office-Programmen beschäftigst.

    +1.

    Kauf dir ein Buch (etwa Richard Kaisers "C++ mit dem C++Builder 2007"), arbeite es durch. Mit deinem gegenwärtigen Wissensstand kannst du nicht produktiv arbeiten.


Anmelden zum Antworten