Fórum Delphi x Word #355030
07/03/2008
0
Bom encontrei isso aqui já no forum que resolve quase que 100¬ das minhas dúvidas, a principal dúvida é a seguinte. Como o documento do word vai ser um laudo de vistoria, e conterá fotos. É possivel inserir ou trocar fotos do mesmo jeito que é feito com os textos? O objeto tem um salvar como de modo que depois de alterar eu possa salvar ele em disco e imprimir em seguida?
Agradeço desde já as possiveis ajudas.
Vitor Rodrigues
Curtir tópico
+ 0Posts
09/03/2008
Vitor Rodrigues
Gostei + 0
16/11/2008
Johnny-walker
neste exemplo insiro uma imagem do arquivo para o word:
Sub Macro5() ´ ´ Macro5 Macro ´ Macro gravada 16/11/2008 por XP Vista Edition ´ Selection.InlineShapes.AddPicture FileName:= _ "C:\Documents and Settings\Administrador\Meus documentos\Minhas imagens\pequim_logo_censura.jpg" _ , LinkToFile:=False, SaveWithDocument:=True End Sub
no arquivo WordXP.pas há referencia a estas linhas de código.
function AddPicture(const FileName: WideString; var LinkToFile: OleVariant; var SaveWithDocument: OleVariant; var Left: OleVariant; var Top: OleVariant; var Width: OleVariant; var Height: OleVariant; var Anchor: OleVariant): Shape; safecall;
Assim quando resolvo inserir uma imagem por cima desta veja:
Sub Macro6() ´ ´ Macro6 Macro ´ Macro gravada 16/11/2008 por XP Vista Edition ´ Selection.InlineShapes(1).Reset Selection.InlineShapes(1).Reset Selection.InlineShapes.AddPicture FileName:= _ "C:\Documents and Settings\Administrador\Meus documentos\Minhas imagens\teste recordcount.JPG" _ , LinkToFile:=False, SaveWithDocument:=True ´Linha irrelevante - apenas subi o scroll ActiveWindow.ActivePane.VerticalPercentScrolled = 0 End Sub
E mais uma vez o delphi nos mostra o caminho, há esta propriedade no trecho de codigo seguido de sua interface:
[code]
property InlineShapes: InlineShapes read Get_InlineShapes;
e tb sua interface:
/ *********************************************************************//
// Interface: InlineShapes
// Flags: (4544) Dual NonExtensible OleAutomation Dispatchable
// GUID: {000209A9-0000-0000-C000-000000000046}
// *********************************************************************//
InlineShapes = interface(IDispatch)
[´{000209A9-0000-0000-C000-000000000046}´]
function Get_Application: WordApplication; safecall;
function Get_Creator: Integer; safecall;
function Get_Parent: IDispatch; safecall;
function Get_Count: Integer; safecall;
function Get__NewEnum: IUnknown; safecall;
function Item(Index: Integer): InlineShape; safecall;
function AddPicture(const FileName: WideString; var LinkToFile: OleVariant;
var SaveWithDocument: OleVariant; var Range: OleVariant): InlineShape; safecall;
function AddOLEObject(var ClassType: OleVariant; var FileName: OleVariant;
var LinkToFile: OleVariant; var DisplayAsIcon: OleVariant;
var IconFileName: OleVariant; var IconIndex: OleVariant;
var IconLabel: OleVariant; var Range: OleVariant): InlineShape; safecall;
function AddOLEControl(var ClassType: OleVariant; var Range: OleVariant): InlineShape; safecall;
function New(const Range: Range): InlineShape; safecall;
function AddHorizontalLine(const FileName: WideString; var Range: OleVariant): InlineShape; safecall;
function AddHorizontalLineStandard(var Range: OleVariant): InlineShape; safecall;
function AddPictureBullet(const FileName: WideString; var Range: OleVariant): InlineShape; safecall;
property Application: WordApplication read Get_Application;
property Creator: Integer read Get_Creator;
property Parent: IDispatch read Get_Parent;
property Count: Integer read Get_Count;
property _NewEnum: IUnknown read Get__NewEnum;
end;
[code]
Acredito que isto possa resolver o seu caso....
PS.: a propósito quando coloco a macro para gravar infeliizmente trava-se o mouse para clicar em objetos, o que achei estranho, então a solução é acionar o menu de contexto pelo teclado...
bye
Gostei + 0
16/11/2008
Johnny-walker
bye
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)