29.07.2021, Vladimír Klaus, navštíveno 1895x
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.
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.
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.
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...".
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.
Použití šablony formuláře
Pro použití šablony ji musíte vybrat pomocí menu:
File > New > Other
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...
A dále "Properties...". V tomto dialogu už najdete tlačítka na změnu/odstranění.
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: