|
Klonování fontů |
|
|
|
Postup: Set Text2.Font = Text1.Font Ale ve většině případů tento postup skutečně nefunguje, protože tím vlastně jen přiřadíte referenci jednoho a toho samého fontu k oběma prvkům. Jinými slovy - pokud později změníte font u jednoho prvku, tak se změní i fonty u prvku ostatních. To co opravdu potřebujete, je font klonovat a prvku přiřadit kopii fontu, který má originální prvek. Nejjednodušší cesta je manuálně kopírovat všechny individuální vlastnosti fontu: Function CloneFont(Font As StdFont) As StdFont 'Příklad použití Set Text2.Font = CloneFont(Text1.Font) Pokud používáte VB6, je možné využít objekt
PropertyBag na rychlé kopírování všech vlastností fontu. Pokud použijete
objekt PropertyBag, pak následující metoda je dvakrát rychlejší než
předchozí příklad: Dim pb As New PropertyBag ' zkopírování fontu do objektu PropertyBag pb.WriteProperty "Font", Font ' a vytvoření nového objektu Font a nastavení jeho vlastností Set CloneFont = pb.ReadProperty("Font") End Function Ale lze napsat ještě lepší kód pomocí
použití skrytého rozhraní IFont, které je ale přístupné všem objektů StdFont.
Toto rozhraní má i metodu Clone, která je přesně to, co potřebujeme. Tato
metoda totiž vytvoří klonovaný font a vrátí pouze referenci na něj: |
|
|
| Autor: The Bozena |