AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Open Dialog autoconnect

Ein Thema von SnakeSchitt · begonnen am 26. Mär 2010 · letzter Beitrag vom 30. Mär 2010
Antwort Antwort
Seite 1 von 2  1 2      
SnakeSchitt

Registriert seit: 17. Feb 2010
15 Beiträge
 
#1

Open Dialog autoconnect

  Alt 26. Mär 2010, 15:00
Hy,
Ich habe auf meinem formular einen opendialog.

Dazu ein WordDokument und eine WordApplikation

Nun wird jedes mal wenn ich über einen Button das WordFile öffne noch einmal ein Fenster angezeigt wo ich noch einmal auf öffnen gehen muss.

Leider gibt es für den OpenDialoge kein AutoConnect.

Beim WordDocument und beim der WordApplication hab ich schon die Ereignisse Autoconnect auf True gestellt.

Kann mir Jemand helfen?

Grüße
SnakeSchitt
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#2

Re: Open Dialog autoconnect

  Alt 26. Mär 2010, 15:03
Ich verstehe nicht so recht, was Du machen willst. Willst Du über Delphi ein Word Dokument öffnen ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#3

Re: Open Dialog autoconnect

  Alt 26. Mär 2010, 15:06
Ich verstehe es auch nicht ganz. Wenn du den OpenDialog via Execute öffnest kannst du doch danach, in so fern True geliefert wird, zum Word-Dokument connecten.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  WordFileName : String;
begin
  if (OpenDialog1.Execute) then
  begin
    WordFileName := OpenDialog.FileName;
    
   {
    Ab hier kannst ja das File der WordApplication übergeben
    oder damit machen was du willst.
   }


  end;
end;
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
SnakeSchitt

Registriert seit: 17. Feb 2010
15 Beiträge
 
#4

Re: Open Dialog autoconnect

  Alt 26. Mär 2010, 15:10
hier mal mein Quelltext:

Delphi-Quellcode:
procedure TNeuenbeitraganlegen.Button_beitrag_freistellungClick(
  Sender: TObject);
var FileName:OleVariant;
  vWhat, vBookmark:OleVariant;
  p1, p2, p3, t1, t2, t3, u1, u2, u3 : integer;
  s, titel, untertitel, titelneu1, titelneu2, untertitelneu1, untertitelneu2 : string;
begin
  if OpenDialog1.Execute then
    FileName := OpenDialog1.FileName
  else
    exit;
...
Nur den Ausschlaggebenden Teil ...

Oder sollte ich einfach nur opendialog1.execute nehmen?

Ohne die if anweisung
  Mit Zitat antworten Zitat
SnakeSchitt

Registriert seit: 17. Feb 2010
15 Beiträge
 
#5

Re: Open Dialog autoconnect

  Alt 26. Mär 2010, 15:13
Wenn ichs so mache krieg ich trotzdem das Fenster und werd gefragt welche datei ich öffnen will
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#6

Re: Open Dialog autoconnect

  Alt 26. Mär 2010, 15:19
Über gibts Du den Inhalt der Variable Filename an das erstellte OLE-Object ? Das Grundgerüst hat Armin Dir ja schon gegeben. Ich habe zur Zeit kein Delphi, aber das VB-Makro sieht so aus, um eine Datei zu öffnen :
Code:
    ChangeFileOpenDirectory "H:\Testdrucke\"
    Documents.Open FileName:="Testdruck.doc", ConfirmConversions:=False, _
        ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
        PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
        WritePasswordTemplate:="", Format:=wdOpenFormatAuto
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
SnakeSchitt

Registriert seit: 17. Feb 2010
15 Beiträge
 
#7

Re: Open Dialog autoconnect

  Alt 26. Mär 2010, 15:28
Ich übergebe dem Wordfile einzelne Daten über die Bookmarks.
Auf dem Wordfile habe ich Textmarken erstellt und gebe dann Strings aus Editfeldern und Comboboxen an das File.
  Mit Zitat antworten Zitat
SnakeSchitt

Registriert seit: 17. Feb 2010
15 Beiträge
 
#8

Re: Open Dialog autoconnect

  Alt 26. Mär 2010, 15:50
Wems hilft hier mal der Ganze Hammer an Quelltext:

Delphi-Quellcode:
procedure TNeuenbeitraganlegen.Button_beitrag_freistellungClick(
  Sender: TObject);
var FileName:OleVariant;
  vWhat, vBookmark:OleVariant;
  p1, p2, p3, t1, t2, t3, u1, u2, u3 : integer;
  s, titel, untertitel, titelneu1, titelneu2, untertitelneu1, untertitelneu2 : string;
begin
  if OpenDialog1.Execute then
    FileName := OpenDialog1.FileName
  else
    exit;

   // Titel auslesen
s := Edit_beitrag_anlegen_titel.text;

p1 := Pos('"',s); //Auslesen erste Position
p2 := PosEx('"', s, p1 + 1); //Auslesen zweite Position
p3 := length(s);

// nun wird der Text dazwischen gespeichert und an die Variable Titel übergeben
titel := Copy(s, (p1+1), (p2-2));
// Untertitel auslesen, und an Untertitel übergeben
untertitel := Copy(s, (p2+2), (p3));

// Länge des Titels auf zwei Zeilen teilen, sollte dieser Länger als 45 Zeichen sein
if length(titel) > 45 then
begin
t1 := 1;
t2 := PosEx(' ', titel, 40);
t3 := length(titel);

titelneu1 := Copy(titel, (t1), (t2));
titelneu2 := Copy(titel, (t2), (t3));
end
else
begin
titelneu1 := titel;
end;

// Länge des Untertitels auf zwei Zeilen teilen, sollte dieser Länger als 45 Zeichen sein
if length(untertitel) > 45 then
begin
u1 := 1;
u2 := PosEx(' ', untertitel, 40);
u3 := length(untertitel);

untertitelneu1 := Copy(untertitel, (u1), (u2));
untertitelneu2 := Copy(untertitel, (u2), (u3));
end
else
begin
untertitelneu1 := untertitel;
end;

  WordApplication1.Connect;
  WordApplication1.Documents.OpenOld(FileName, EmptyParam, EmptyParam,
    EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
    EmptyParam, EmptyParam);
  WordDocument1.ConnectTo(WordApplication1.ActiveDocument);
  WordApplication1.Visible := True;
    vWhat:=wdGoToBookmark;
  vBookmark:= 'VORNAME';
  WordApplication1.Selection.GoTo_(vWhat,emptyParam,emptyParam,vBookmark);
  WordApplication1.Selection.TypeText(ComboBox_beitrag_anlegen_vorname.text);
    vWhat:=wdGoToBookmark;
  vBookmark:= 'NACHNAME';
  WordApplication1.Selection.GoTo_(vWhat,emptyParam,emptyParam,vBookmark);
  WordApplication1.Selection.TypeText(ComboBox_beitrag_anlegen_nachname.text);
    vWhat:=wdGoToBookmark;
  vBookmark:= 'LAENGE';
  WordApplication1.Selection.GoTo_(vWhat,emptyParam,emptyParam,vBookmark);
  WordApplication1.Selection.TypeText(MaskEdit_beitrag_anlegen_dauer.text);
    vWhat:=wdGoToBookmark;
  vBookmark:= 'NR';
  WordApplication1.Selection.GoTo_(vWhat,emptyParam,emptyParam,vBookmark);
  WordApplication1.Selection.TypeText(Label_beitrag_anlegen_nummer.Caption);
    vWhat:=wdGoToBookmark;
  vBookmark:= 'TITEL1';
  WordApplication1.Selection.GoTo_(vWhat,emptyParam,emptyParam,vBookmark);
  WordApplication1.Selection.TypeText(titelneu1);
      vWhat:=wdGoToBookmark;
  vBookmark:= 'UNTERTITEL1';
  WordApplication1.Selection.GoTo_(vWhat,emptyParam,emptyParam,vBookmark);
  WordApplication1.Selection.TypeText(untertitelneu1);
    vWhat:=wdGoToBookmark;
  vBookmark:= 'TITEL2';
  WordApplication1.Selection.GoTo_(vWhat,emptyParam,emptyParam,vBookmark);
  WordApplication1.Selection.TypeText(titelneu2);
      vWhat:=wdGoToBookmark;
  vBookmark:= 'UNTERTITEL2';
  WordApplication1.Selection.GoTo_(vWhat,emptyParam,emptyParam,vBookmark);
  WordApplication1.Selection.TypeText(untertitelneu2);

  
end;
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#9

Re: Open Dialog autoconnect

  Alt 26. Mär 2010, 16:57
Wann tritt das Problem auf ? Wenn Du Word geschlossen hast oder offen hast ?

Edit:
Dieses Beispiel funktioniert :
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var FileName:OleVariant;
  vWhat, vBookmark:OleVariant;
begin
  if OpenDialog1.Execute then
    FileName := OpenDialog1.FileName
  else
    exit;
  if assigned(WordApplication1) then
  begin
    WordApplication1.Connect;
    WordApplication1.Documents.OpenOld(FileName, EmptyParam, EmptyParam,
      EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
      EmptyParam, EmptyParam);
    WordDocument1.ConnectTo(WordApplication1.ActiveDocument);
    WordApplication1.Visible := True;
    vWhat:=wdGoToBookmark;
    vBookmark:='Name';
    WordApplication1.Selection.GoTo_(vWhat,emptyParam,emptyParam,vBookmark);
    WordApplication1.Selection.TypeText('Max Mustermann'#13'Dorfstraße 100');
  end;
end;
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
SnakeSchitt

Registriert seit: 17. Feb 2010
15 Beiträge
 
#10

Re: Open Dialog autoconnect

  Alt 29. Mär 2010, 13:24
An sich ist es kein echtes Problem.

Es wäre nur entscheidend bequemer wenn nicht nach dem klicken des Buttons noch einmal ein Fenster aufgeht und ich extra öffnen muss sondern das Dokument sich ohne weiteres nachfragen öffnet.

Funktionieren tut es. Auch die Übergabe und alles andere.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz