Tipy a triky v Delphi, díl 88.

Pokračujeme dnes ve Wordu a dostáváme se možná k tématu ne tak moc atraktivnímu, nicméně důležitému. Naučíme se měnit vlastnosti dokumentu jako je například jméno autora, název dokumentu a další parametry.
Zřejmě to asi nemusím připomínat, ale pro jistotu si nejdříve pořádně vysvětlíme, o jakých že vlastnostech je vlastně řeč. Otevřete-li si nějaký dokument (může to být DOC, RTF a dokonce i HTML) a v hlavní nabídce v menu Soubor vyberete položku Vlastnosti, zobrazí se vám dialogové okno s vlastnostmi dokumentu. Na první pohled není toto okno příliš rozsáhlé, ale projdete-li postupně všechny záložky, naleznete volitelných parametrů poměrně hodně (obzvlášť na poslední záložce Vlastní). Na jednotlivých záložkách tak vidíme informace o autorovi dokumentu, společnosti, klíčová slova a další a také statistické údaje a rozličné časové údaje.

Některé tyto údaje můžeme měnit, jiné jsou jen pro čtení. Jako domácí uživatel, který chce obvykle jen dokument napsat a vytisknout, asi tyto údaje příliš nevyužijete. Ve firmách, kde na dokumentech pracuje i více autorů a je třeba dodržovat určitá pravidla, jsou však tyto parametry užitečné pro vyhledávání a lepší orientaci ve velkém množství dokumentů.

Dost zbytečných řečí, pojďme na Delphi. Naučíme se tyto parametry měnit a opět použijeme OLE, i když tentokrát by to šlo udělat i "rovnou". Nebylo by to ale tak čisté a přidržíme se raději této bezpečnější metody. Celý zdrojový kód jednoduchého příkladu je zde:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComObj;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
  wTitle = $00000001;
  wSubject = $00000002;
  wAuthor = $00000003;
  wKeywords = $00000004;
  wComments = $00000005;
  wTemplate = $00000006;
  wLastAuthor = $00000007;
  wRevision = $00000008;
  wAppName = $00000009;
  wTimeLastPrinted = $0000000A;
  wTimeCreated = $0000000B;
  wTimeLastSaved = $0000000C;
  wVBATotalEdit = $0000000D;
  wPages = $0000000E;
  wWords = $0000000F;
  wCharacters = $00000010;
  wSecurity = $00000011;
  wCategory = $00000012;
  wFormat = $00000013;
  wManager = $00000014;
  wCompany = $00000015;
  wBytes = $00000016;
  wLines = $00000017;
  wParas = $00000018;
  wSlides = $00000019;
  wNotes = $0000001A;
  wHiddenSlides = $0000001B;
  wMMClips = $0000001C;
  wHyperlinkBase = $0000001D;
  wCharsWSpaces = $0000001E;

  AWordDoc = `C:\test.doc`;
  wSaveChanges = $FFFFFFFF;

var
  WordApp: OLEVariant;
  SaveChanges: OleVariant;
begin
  try
    WordApp := CreateOleObject(`Word.Application`);
  except
    Exit;
  end;
  try
    WordApp.Visible := False;
    WordApp.Documents.Open(AWordDoc);
    WordApp.ActiveDocument.BuiltInDocumentProperties[wTitle].Value := `Název dokumentu`;
    WordApp.ActiveDocument.BuiltInDocumentProperties[wSubject].Value := `Předmět`;
  finally
    SaveChanges := wSaveChanges;
    WordApp.Quit(SaveChanges, EmptyParam, EmptyParam);
  end;
end;

end.

Tento jednoduchý příklad zajistí, že po stisknutí tlačítka budou do příslušného dokumentu (který je specifikován v konstantách) vloženy údaje o jeho názvu a předmětu. Z celé škály vlastností si pochopitelně můžete zvolit jaké chcete, stačí si jen vybrat ze seznamu, který je opět definován v konstantách. Nevyplněné parametry budou ponechány beze změn.

Tento způsob můžete aplikovat nejen na dokumenty typu DOC, ale i RTF a klidně i HTML.

Váš názor Další článek: Telecom chce v létě 2,5krát zrychlit internet přes ADSL

Témata článku: Software, Windows, Programování, .doc, Trik, Exit, Díl, Savec


Určitě si přečtěte

Apple dal do MacBooku procesor Core i9 a 4TB SSD. Ani se neptejte, co za to chce...

Apple dal do MacBooku procesor Core i9 a 4TB SSD. Ani se neptejte, co za to chce...

** Apple aktualizoval notebooky MacBook Pro, dostaly nový hardware ** Těšit se můžete na nové procesory a větší paměť ** Cena nejvybavenějšího modelu překročí 200 tisíc korun

Martin Miksa | 99

Byli tam! Důkazy o přistání na Měsíci, Lunochody i čínská sonda jsou vidět z vesmíru

Byli tam! Důkazy o přistání na Měsíci, Lunochody i čínská sonda jsou vidět z vesmíru

** Sonda LRO pořídila z oběžné dráhy Měsíce zajímavé snímky ** Jsou na nich vidět artefakty všech misí programu Apolla, které přistály na povrchu Měsíce ** Jde například o části lunárních modulů, rovery a dokonce i vlajky

Petr Kubala | 60

Apple: naše mapy budou nejlepší na světě. Tajně jsme na nich pracovali několik let

Apple: naše mapy budou nejlepší na světě. Tajně jsme na nich pracovali několik let

** Apple odhalil své plány na zcela nové mapy ** Několik let pracuje na nových mapách, které by měly předběhnout konkurenci ** Objeví se s příchodem iOS 12 pro vybrané státy

Karel Javůrek | 50

Sex a rozmnožování při mezihvězdné cestě: Kolik lidí je potřeba pro let k Proximě Centauri?

Sex a rozmnožování při mezihvězdné cestě: Kolik lidí je potřeba pro let k Proximě Centauri?

** Vědci spočítali, jak velká by musela být posádka pro vícegenerační let k nejbližší hvězdné soustavě ** Proxima Centauri se nachází 4,3 světelných let od nás ** Za současných technologií bychom k ní letěli 6300 let

Petr Kubala | 55

Šmírovačka kamerami Googlu: Koukněte se, co nového zachytily na Street View

Šmírovačka kamerami Googlu: Koukněte se, co nového zachytily na Street View

Google stále fotí celý svět do své služby Street View. A novodobou zábavou je hledat v mapách Googlu vtipné záběry. Podívejte se na výběr nejlepších!

redakce | 44


Aktuální číslo časopisu Computer

Velký test 18 bezdrátových sluchátek

Vše o přechodu na DVB-T2

Procesory AMD opět porážejí Intel

7 NVMe M.2 SSD v přímém souboji