Tipy a triky v Delphi, díl 87. - Word

Po Outlooku máme na řadě Word. Dnes si ukážeme, jak vytvořit nový dokument a napsat několik řádek zformátovaného textu. Samozřejmě, že vše prostřednictvím Delphi.
Náplň dnešního dílu je tedy jasná, takže se pustíme do práce. I dnešní příklad využívá OLE a proto je nezbytně nutné, aby byl na počítači, kde budete ukázku testovat, nainstalován Word. Stejně jako v minulých příkladech pak potřebujeme knihovnu ComObj.

A co vlastně bude náš dnešní příklad umět? Po kliknutí na příslušné tlačítko bude spuštěn Word a v něm založen nový dokument. Bude-li již Word běžet ještě před spuštěním naší aplikace, bude prostě otevřena další instance a původní dokument se nijak nenaruší. V tomto novém dokumentu bude nejprve vyplněna hlavička a patička dokumentu a dále bude přidán jednoduchý zformátovaný text, který by se dal s trochou nadsázky označit za hlavičku nějakého (úředního) dopisu. Zdrojový kód tedy vypadá takto:

procedure TForm1.Button1Click(Sender: TObject);
var
  Word: OLEVariant;
begin
  try
    Word := CreateOleObject(`Word.Application`);
    Word.Visible := True;
    Word.Documents.Add;
    if Word.ActiveWindow.View.SplitSpecial <> 0 then Word.ActiveWindow.Panes[2].Close;
    if (Word.ActiveWindow.ActivePane.View.type = 1) or
    (Word.ActiveWindow.ActivePane.View.type = 2) or
    (Word.ActiveWindow.ActivePane.View.type = 5) then
    Word.ActiveWindow.ActivePane.View.type := 3;
    Word.ActiveWindow.ActivePane.View.SeekView := 9;
    Word.Selection.Font.Name := `Times New Roman`;
    Word.Selection.Font.Size := 12;
    Word.Selection.Font.Bold := True;
    Word.Selection.ParagraphFormat.Alignment := 1;
    Word.Selection.TypeText(Text := `Hlavička dokumentu`);
    if Word.Selection.HeaderFooter.IsHeader = True then Word.ActiveWindow.ActivePane.View.SeekView := 10
    else Word.ActiveWindow.ActivePane.View.SeekView := 9;
    Word.Selection.ParagraphFormat.Alignment := 1;
    Word.Selection.TypeText(Text := `Patička dokumentu`);
    Word.ActiveWindow.ActivePane.View.SeekView := 0;
    Word.Selection.TypeText(Text := `Jméno a příjmení`);
    Word.Selection.TypeParagraph;
    Word.Selection.TypeText(Text := `Ulice a čp.`);
    Word.Selection.TypeParagraph;
    Word.Selection.Font.Name := `Times New Roman`;
    Word.Selection.Font.Size := 12;
    Word.Selection.Font.Bold := True;
    Word.Selection.TypeText(Text := `Město`);
    Word.Selection.TypeParagraph;
    Word.Selection.TypeParagraph;
    Word.Selection.TypeParagraph;
    Word.Selection.TypeParagraph;
    Word.Selection.Font.Name := `Arial`;
    Word.Selection.Font.Size := 14;
    Word.Selection.Font.Bold := True;
    Word.Selection.TypeText(Text := `Nadpis`);
    Word.Selection.TypeParagraph;
    Word.Selection.TypeParagraph;
    Word.Selection.TypeParagraph;
    Word.Selection.Font.Name := `Times New Roman`;
    Word.Selection.Font.Size := 12;
    Word.Selection.Font.Bold := True;
    Word.Selection.TypeText(Text := `Vážená paní / vážený pane`);
  except
  end;
end;

Myslím, že ze zdrojového kódu je velmi dobře vidět jak vložit text požadovaných vlastností a jak vložit odstavec. Experimentováním jistě přijdete na další zajímavé možnosti.

Pokud bude vámi vytvářený text delší a složitější, můžete přímo v průběhu jeho vytváření vidět v okně Wordu jak postupně přibývá a dotváří se. To je proto, že hned jedním z prvních příkazů zapneme viditelnost Wordu (Word.Visible := True). Pokud by vám to nevyhovovalo, samozřejmě můžete tento řádek přesunout až na samý konec.

Určitě jste také zjistili (nebo si možná rovnou všimli v kódu), že po vytvoření dokumentu nebude Word uzavřen. To je proto, že náš dnešní příklad vlastně popisuje jistou modelovou situaci. Ve vaší aplikaci nejprve vyplníte například údaje do EditBoxů a dalších prvků (a nebo je třeba načtete z databáze) a poté jedním kliknutím tlačítka vaše aplikace vygeneruje základ pro obchodní dopis. Ten bude obsahovat základní údaje (hlavičku, patičku, adresu atd..) načtený z EditBoxů a zbytek (text dopisu) poté doplní uživatel ručně, uloží jej a Word uzavře. V tom je právě síla tohoto příkladu. Nemusíte do zdrojového kódu psát natvrdo nějaký text, ale můžete použít textové proměnné (například právě zmiňované EditBoxy), což vám pak umožní dynamicky generovat různé výstupy.

Diskuze (1) Další článek: Resource Kit Tools pro Windows Server 2003 a XP

Témata článku: Software, Programování, Microsoft Word, Díl, Trik, Word


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

Porno insider: Jak virtuální realita vstupuje do filmů pro dospělé

Porno insider: Jak virtuální realita vstupuje do filmů pro dospělé

** Pornografie údajně představuje třetinu internetové obsahu a je technologický tahounem ** Do erotického obsahu postupně zasahuje i virtuální realita ** Kromě vizuálního vjemu se pracuje také na virtuálním uspokojení toho hmatového

Jan Dudek | 28

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

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

Alan Turing: Genius, který matematicky stvořil počítač

Alan Turing: Genius, který matematicky stvořil počítač

Řešením matematického problému se dostal k modelu teoretického stroje, který nese jeho jméno a je základem logiky univerzálních počítačů.

Pavel Tronner | 57

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

Š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

Nová zbraň Microsoftu proti iPadu: Levný tablet Surface Go bude stát jen deset tisíc

Nová zbraň Microsoftu proti iPadu: Levný tablet Surface Go bude stát jen deset tisíc

** Microsoft představil nový tablet Surface Go ** Nový model zaujme nízkou cenou, ale schopnostmi zařízení Surface ** Microsoft nepoužil čip ARM, ale klasický procesor od Intelu 

Karel Javůrek | 116


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