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.