Autor Beitrag
chickenfigt1989
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 444
Erhaltene Danke: 2



BeitragVerfasst: Mo 05.03.12 17:20 
Hallo,
Ich will mittels einen Buttonklick den Text aus einen Richedit Formatiert in ein Word dokument Importieren.


Habe folgenden Code:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm2.Button1Click(Sender: TObject);
begin
if processExists('winword.exe'then
     WriteToMSWord(RichEdit1.text)
     WordApplication1.Selection.TypeText('Test'#13#10)
  else
    ShellExecute(Application.Handle, 'open', PChar('.C:\Program Files\Microsoft Office\OFFICE11\winword.exe'),'','',SW_SHOW);
    WriteToMSWord(RichEdit1.text)
     WordApplication1.Selection.TypeText('Test'#13#10)
end;


Mit den if ProcessExists will ich überprüfen ob Word schon läuft wenn ja soll es nur den Text kopieren und wenn es nicht läuft sollte zuerst Word gestartet werden.

Allerdings bekomm ich beim Start schon folgende Fehler:

ausblenden Delphi-Quelltext
1:
2:
[Error] Unit2.pas(185): Missing operator or semicolon
[Error] Unit2.pas(185): Missing operator or semicolon



Desweiteren bei WriteToMSWord(RichEdit1.text)
wird der Text zwar in ein Word Dokument Importiert aber unformatiert und es wird jedesmal ein neues Dokument geöffnet.

Könntet ihr mir vllt. behilflich sein?

lg


Moderiert von user profile iconGausi: Topic aus Dateizugriff verschoben am Mo 05.03.2012 um 16:27
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mo 05.03.12 17:27 
Naja, da fehlt dann wohl das eine oder andere Semikolon. Also das Zeichen, womit so ziemlich jeder Befehl in Pascal-artigen Sprachen abgeschlossen wird.

Und wenn ich mir deine Einrückungen so ansehe, fehlen wahrscheinlich auch ein paar begin und end.

Diese Grundlagen sollten bei dir aber doch mittlerweile sitzen? :gruebel:

_________________
We are, we were and will not be.
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Mo 05.03.12 17:52 
Über die Zwischenablage geht bei TRichEdit AFAIK nur CF_TEXT

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
implementation
uses ComObj;
{$R *.dfm}
Function GetTempDir: String;
var
  P: Pchar;
begin
  P := stralloc(255);
  GetTempPath(255, P);
  Result := P;
  strdispose(P);
end;


procedure TForm2.Button1Click(Sender: TObject);
var
 Word, Document:OleVariant;
 fn:String;
begin
   fn := IncludeTrailingBackSlash(GetTempDir) + '~tmp.rtf';
   Richedit1.Lines.SaveToFile(fn);
   Word := CreateOleObject('Word.Application');
   Document := Word.Documents.Add(fn);
   Word.Visible := true;
   Deletefile(fn);
end;

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mo 05.03.12 17:59 
Naja, die Meldung sagt ja schon, dass da was fehlt:
ausblenden Quelltext
1:
[Error] Unit2.pas(185): Missing operator or semicolon					

Soviel Englisch sollte eigentlich jeder beherrschen.

user profile iconchickenfigt1989 hat folgendes geschrieben Zum zitierten Posting springen:

Desweiteren bei WriteToMSWord(RichEdit1.text)
wird der Text zwar in ein Word Dokument Importiert aber unformatiert und es wird jedesmal ein neues Dokument geöffnet.


Wie hast du das denn rausbekommen? Der Source-Code lässt sich doch gar nicht compilieren.

Tipp:
Bereite den Source erstmal soweit auf, dass er überhaupt läuft.
Dann schreibe doch mal den Source für die Prozedur WriteToMSWord hier hin. Denn dort dürfte vermutlich der Fehler sein, warum die Formatierung nicht übertragen wird.
Oder ist das eine Standard-Prozedure in Delphi? Mir ist die nicht bekannt. :nixweiss:
chickenfigt1989 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 444
Erhaltene Danke: 2



BeitragVerfasst: Mo 05.03.12 19:49 
@Bummi

Kann man mit deiner Methode dann auch den Text Formatieren sprich eine Zeile Fett und eine Zeile andere Schriftart?

Und kann man die Adressen ins Word so importieren dass es wie eine Karteikarte das Format hat?

lg
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Di 06.03.12 08:25 
Du kannst Word per OLE komplett fernsteuern.
In meinem Beispiel wird ja lediglich ein RTF geladen, Formatierungen bleiben hierbei natürlich er
halten. Die Frage nach den Karteikarten verstehe ich nicht.

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
chickenfigt1989 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 444
Erhaltene Danke: 2



BeitragVerfasst: Di 06.03.12 20:17 
Oh sorry

Also der Text sollte halt schön Formatiert sein

Beispiel:


<Datum> <Tel:>

<Anrede>

<Vorname> <Nachname>

<Straße> <PLZ>


Dann sollte Anrede und Straße und PLZ halt noch Fett sein

lg
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Di 06.03.12 22:12 
Am lehrreichsten/einfachsten ist es in Word ein Macro aufzuzeichnen, das zu tun was man möchte.
Den Inhalt des Macros kann man dann als Basis für seine OLE-Steuerung verwenden.
Wenn Du ein .DOT anlegst und diese lädst kann Du Deine formatierten Platzhalter aus obigen Beispiel über das FindObject diese durch die Inhalte ersetzen lassen.
Vielleicht kannst Du ja das ein oder andere aus dem Anhang brauchen ....
Einloggen, um Attachments anzusehen!
_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Perlsau
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 07.03.12 00:13 
user profile iconchickenfigt1989 hat folgendes geschrieben Zum zitierten Posting springen:
Text aus einen Richedit Formatiert in ein Word dokument Importieren.


Lass mich das mal für dich googeln ...
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Mi 07.03.12 00:29 
@Perlsau

hast Du Deinen Link mal ausprobiert?

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS