unit JPWORD;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

OleServer, {Word97,}Word2000{,WordXP},Variants;

type

TJPWORD = class(TWordApplication)

private

FOnLocalizar: TnotifyEvent;

FOnLocalizarSubstituir: TnotifyEvent;

FOnCopiarModelo: TnotifyEvent;

FOnSalvarComo: TnotifyEvent;

FOnDepoisSalvar: TnotifyEvent;

FOnAntesSalvar: TnotifyEvent;

FOnDepoisCopiarModelo: TnotifyEvent;

FOnAntesCopiarModelo: TnotifyEvent;

FProgs: String;

procedure SetOnLocalizar(const Value: TnotifyEvent);

procedure SetOnLocalizarSubstituir(const Value: TnotifyEvent);

procedure SetOnCopiarModelo(const Value: TnotifyEvent);

procedure SetOnSalvarComo(const Value: TnotifyEvent);

procedure SetOnAntesSalvar(const Value: TnotifyEvent);

procedure SetOnDepoisSalvar(const Value: TnotifyEvent);

procedure SetOnAntesCopiarModelo(const Value: TnotifyEvent);

procedure SetOnDepoisCopiarModelo(const Value: TnotifyEvent);

function Programadors: String;

{ Private declarations }

protected

{ Protected declarations }

public

Function getWdStory:olevariant;

Function GetwdCharacter:OleVariant;

Function GetwdFormatText:OleVariant;

function Localizar(texto:string):boolean;

function LocalizarSubstituir(TextoAnterior,NovoTexto:WideString):boolean;

Procedure TamanhoDaFonte(tamanho:string);

Procedure InserirTexto(texto:string);

Procedure SalvarComo(caminho:string);

Procedure SalvarComoTexto(caminho:string);

Procedure NovoDocumento;

Procedure CopiarModelo(modelo:string);

Procedure Imprimir;

Procedure FecharDocumento;

Procedure Deletar;

{ Public declarations }

published

Property OnLocalizar:TnotifyEvent read FOnLocalizar write SetOnLocalizar;

Property OnLocalizarSubstituir:TnotifyEvent read FOnLocalizarSubstituir write SetOnLocalizarSubstituir;

Property OnCopiarModelo:TnotifyEvent read FOnCopiarModelo write SetOnCopiarModelo;

Property OnSalvarComo:TnotifyEvent read FOnSalvarComo write SetOnSalvarComo;

Property OnAntesSalvar:TnotifyEvent read FOnAntesSalvar write SetOnAntesSalvar;

Property OnDepoisSalvar:TnotifyEvent read FOnDepoisSalvar write SetOnDepoisSalvar;

Property OnAntesCopiarModelo:TnotifyEvent read FOnAntesCopiarModelo write SetOnAntesCopiarModelo;

Property OnDepoisCopiarModelo:TnotifyEvent read FOnDepoisCopiarModelo write SetOnDepoisCopiarModelo;

Property Programadores:String read Programadors write FProgs;

{ Published declarations }

end;

procedure Register;

implementation

procedure Register;

begin

RegisterComponents(JPO, [TJPWORD]);

end;

{ TJPCAWORD2000 }

procedure TJPWORD.CopiarModelo(modelo: string);

var Smodelo,comfirm:olevariant;

begin

//esta funçao não é para onus

if assigned(onantescopiarmodelo) then

OnAntesCopiarModelo(self);

SModelo:=modelo;

comfirm:= false;

// quant := 1;

// if Documents.Count = 0 then begin

// Documents.Add(EmptyParam,EmptyParam);

// end;

Self.Documents.Open(Smodelo,comfirm,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);

// Selection.WholeStory;

// Selection.Copy;

// ActiveDocument.Close(EmptyParam,EmptyParam,EmptyParam);

// comfirm := wdScreen;

// Selection.MoveDown(comfirm,quant,EmptyParam);

// Selection.Paste;

if assigned(OnCopiarModelo) then

OnCopiarModelo(self);

if assigned(ondepoiscopiarmodelo) then

OndepoisCopiarModelo(self);

end;

procedure TJPWORD.Deletar;

begin

Self.Application.Selection.Delete(EmptyParam,EmptyParam);

self.Application.Selection.Find.Text := ;

self.Application.Selection.Find.ClearFormatting;

end;

procedure TJPWORD.FecharDocumento;

begin

Self.ActiveDocument.Close(EmptyParam,EmptyParam,EmptyParam);

end;

function TJPWORD.GetwdCharacter: OleVariant;

begin

result := wdCharacter;

end;

function TJPWORD.GetwdFormatText: OleVariant;

begin

result := wdFormatText;

end;

function TJPWORD.getWdStory: olevariant;

begin

result := wdStory;

end;

procedure TJPWORD.Imprimir;

begin

self.ActiveDocument.PrintOut(EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,

EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);

end;

procedure TJPWORD.InserirTexto(texto: string);

begin

Self.Application.Selection.Text := texto;

end;

function TJPWORD.Localizar(texto: string): boolean;

var texto1,{count,}forwards,wraps:olevariant;

begin

texto1 := texto;

forwards := true;

wraps := wdFindContinue;

// self.Application.Selection.Find.Text

self.Application.Selection.Find.ClearFormatting;

// self.Application.Selection.Find.Text := texto1;

// self.Application.Selection.Find.Forward := TRUE;

self.Application.Selection.Find.Execute(texto1,EmptyParam,EmptyParam,

EmptyParam,EmptyParam,EmptyParam,forwards,wraps,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);

result := self.Application.Selection.Find.Found;

{ FOI COMENTADO POIS NÃO TEM NECESSIDADE

if result = false then begin

count := 1;

texto1 := wdscreen;

Selection.MoveUp(texto1,count,EmptyParam);

Selection.Text := ;

end; }

if Assigned(onlocalizar) then

OnLocalizar(self);

end;

 

 

function TJPWORD.LocalizarSubstituir(TextoAnterior,

NovoTexto: WideString): boolean;

var texto1,texto2,forwards,wraps:olevariant;

begin

texto1 := textoAnterior;

texto2 := Novotexto;

forwards := true;

wraps:= wdFindContinue;

self.Application.Selection.Find.ClearFormatting;

self.Application.Selection.Find.Text := texto1;

self.Application.Selection.Find.Forward := TRUE;

self.Application.Selection.Find.Execute(texto1,EmptyParam,EmptyParam,

EmptyParam,EmptyParam,EmptyParam,forwards,wraps,EmptyParam,texto2,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);

result := self.Application.Selection.Find.Found;

if assigned(onlocalizarsubstituir) then

OnLocalizarSubstituir(self);

end;

procedure TJPWORD.NovoDocumento;

begin

Self.Documents.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam);

end;

function TJPWORD.Programadors: String;

begin

FProgs := João Paulo;

result := João Paulo;

Programadors := João Paulo;

end;

procedure TJPWORD.SalvarComo(caminho: string);

var

Spath,nao{,formato}:olevariant;

begin

if Assigned(onantessalvar) then

OnAntesSalvar(self);

spath := caminho;

nao := true;

// formato := wdFormatDocument;

Self.ActiveDocument.SaveAs(Spath,nao,EmptyParam,EmptyParam,EmptyParam,EmptyParam,

EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);

if assigned(onsalvarcomo) then

OnSalvarComo(self);

if Assigned(ondepoissalvar) then

OndepoisSalvar(self);

end;

Procedure TJPWORD.SalvarComoTexto(caminho: string);

var

Spath,formato:olevariant;

begin

Spath:= (ExtractFileDir(caminho)) +\+ (copy(ExtractFileName(caminho),1,Length(ExtractFileName(caminho))-4))+_Temp.ret;

formato := wdFormatText;

Self.ActiveDocument.SaveAs(Spath,formato,EmptyParam,EmptyParam,EmptyParam,EmptyParam,

EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);

self.ActiveDocument.Close(EmptyParam,EmptyParam,EmptyParam);

end;

procedure TJPWORD.SetOnAntesCopiarModelo(const Value: TnotifyEvent);

begin

FOnAntesCopiarModelo := Value;

end;

procedure TJPWORD.SetOnAntesSalvar(const Value: TnotifyEvent);

begin

FOnAntesSalvar := Value;

end;

procedure TJPWORD.SetOnCopiarModelo(const Value: TnotifyEvent);

begin

FOnCopiarModelo := Value;

end;

procedure TJPWORD.SetOnDepoisCopiarModelo(const Value: TnotifyEvent);

begin

FOnDepoisCopiarModelo := Value;

end;

procedure TJPWORD.SetOnDepoisSalvar(const Value: TnotifyEvent);

begin

FOnDepoisSalvar := Value;

end;

procedure TJPWORD.SetOnLocalizar(const Value: TnotifyEvent);

begin

FOnLocalizar := Value;

end;

procedure TJPWORD.SetOnLocalizarSubstituir(

const Value: TnotifyEvent);

begin

FOnLocalizarSubstituir := Value;

end;

procedure TJPWORD.SetOnSalvarComo(const Value: TnotifyEvent);

begin

FOnSalvarComo := Value;

end;

procedure TJPWORD.TamanhoDaFonte(tamanho: string);

begin

self.Application.Selection.Font.Size := strtoint(tamanho);

end;

end.