29.07.2021, Vladimír Klaus, navštíveno 1031x

Delphi

Poměrně často vytvářím nové formuláře, které jsou ale velmi podobné již těm existujícím. Vždy jsem to dělal prastarým způsobem - tedy uložením stávajícího pod novým/dalším jménem, úpravou této kopie atd. Vůbec mě bohužel nenapadlo použít Object Repository, čímž bych ušetřil hodně času a práce. Nepoužíval jsem ho ani v jiných situacích, natož u svých vlastních objektů. A řekněme si upřímně - jedním z důvodů je trochu zvláštní ovládání.

Ostatně i proto vznikl tento článek, který jednoduše popisuje základní postupy, kdy si třeba chcete vytvořit šablonu dialogového okna s dvěma tlačítky, ikonkou a předpřipraveným textem, a pak ji jednoduše používat, ale třeba i měnit.

Jak používat Delphi Object Repository, obr. 1

Vytvoření formuláře

Založte nový projekt (jde jen o formalitu) a pak zcela normálně vytvořte formulář včetně dalších komponent, metod, událostí, uses apod. Hlavně ho ale uložte někam mimo projekt, protože Object Repository se stále odkazuje na zdrojové soubory, takže když třeba projekt smažete, přijdete i o tuto šablonu.

Jak používat Delphi Object Repository, obr. 2

Druhým důvodem je zálohování, viz dále. Já mám sadu vlastních knihoven v d:\PasVK2020\, takže jsem si založil podsložku d:\PasVK2020\Repository\.

Také se zamyslete nad názvem formuláře, protože později můžete chtít využít dědění, tak aby to dávalo smysl. Já jsem si to nazval jen jako VKDialog01Form.

Jak používat Delphi Object Repository, obr. 3

Přidání do Object Repository

Aby bylo možné přidat formulář do Repository, je třeba na něj kliknout pravým tlačítkem a vybrat "Add to Repository...".

Jak používat Delphi Object Repository, obr. 4

Objeví se dialog, který jednoduše vyplníte, případně si vytvoříte i vlastní kategorii, do které bude šablona umístěna. Tedy ne fyzicky, jak jsem již uváděl výše.

Jak používat Delphi Object Repository, obr. 5

Použití šablony formuláře

Pro použití šablony ji musíte vybrat pomocí menu:

File > New > Other

Jak používat Delphi Object Repository, obr. 6

Zcela zásadní je dolní volba, která umožňuje volit různé využití šablony:

  • Copy - Vytvoří se kopie, která se šablonou nemá dále nic společného
  • Inherit - Založí se nový formulář, ale na základě šablony. Když změníte šablonu, změní se i tento. Platí pochopitelně jen pro části, které jste v následníkovi nezměnili. Zkrátka klasické dědění.
  • Use - Formulář se přidá do projektu, což je trochu nebezpečné. Zapomenete, že je to šablona a začnete ho měnit...

Mě nejvíc vyhovuje "Copy", protože u jednoduchých formulářů, jako je v tomto příkladu, nebudu využívat nějakou chytrost předka, ale budu ho téměř kompletně měnit. A je to dobré také v situaci, kdy je v šabloně nějaká chytrost, a které se v kopii třeba budete chtít zbavit.

Úprava šablony

Jak už bylo zmíněno, celý systém funguje na tom, že stále odkazuje na originální soubory. Úprava tedy spočívá v přímé úpravě daných souborů. A to se dá udělat i třeba pomocí výše zmíněného použití "Use".

Změna a odstranění šablony

Změnou či odstraněním mám na mysli parametry šablony a odkaz na ni, ne zdrojové soubory! Použijte menu:

Tools > Template Libraries...

Jak používat Delphi Object Repository, obr. 7

A dále "Properties...". V tomto dialogu už najdete tlačítka na změnu/odstranění.

Jak používat Delphi Object Repository, obr. 8

Zálohování a obnova po instalaci nového Delphi

Zálohování je třeba rozdělit na dvě části. Prvním je záloha přímo zdrojových souborů, což by neměl být problém. Ale jak zálohovat informace o umístění v Object Repository? Těžko říci. Řadu souborů najdete v této složce, nejnadějnější je přímo Repository.xml...

c:\Users\{USERNAME}\AppData\Roaming\Embarcadero\BDS\21.0\

Otázkou ale je, zda je vhodné tento soubor v novém Delphi nahrazovat starým. Já osobně toto vůbec neřeším a po instalaci těch několik šablon opět ručně přidám.

Zdroje: