Tvorba t°φd a ActiveX komponent

Prom∞nnΘ a vlastnosti
Kdy₧ budete chtφt v prvku pou₧φt n∞jakou prom∞nnou, staΦφ ji normßln∞ deklarovat (pou₧itφm Dim nebo Private). Pokud ale budete chtφt, aby tato prom∞nnß byla p°φstupnß pro kontainer (co₧ znamenß pro formulß°, na kterΘm je prvek), musφte vytvo°it vlastnost.

Kdy₧ pou₧φvßte komponentu jako je nap°φklad TextBox, tak mßte p°φstup k mnoha vlastnostem. N∞kterΘ z nich jsou standardnφ vlastnosti, kterΘ majφ vÜechny prvky, jako le Left, Width, Tag nebo Name. JinΘ mohou b²t unikßtnφ pro dan² prvek - nap°φklad Text, Enabled, Locked nebo Multiline. Pokud chcete v prvku nebo t°φd∞ vytvo°it vlastnost, mßte n∞kolik mo₧nostφ (se°azeno podle jednoduchosti vytvo°enφ):

1. Pou₧φt ActiveX Control Wizard (Project|Add User Control| VB ActiveX Control Wizard
2. JednoduÜe deklarovat prom∞nnou jako Public:
      
Public Enabled As Boolean
3. Vytvo°enφ procedur Property Enabled_Let a Property Enabled_Get

Pravd∞podobn∞ se Vßm zdß nejjednoduÜÜφ pou₧itφ prvnφ metody. OvÜem, nejrychlejÜφ nenφ v₧dy nejlepÜφ. Nenφ ·pln∞ od v∞ci pochopit princip prßce vlastnostφ namφsto nechßnφ veÜkerΘ prßce na Visual Basicu. OvÜem pokud jste absolutnφ zaΦßteΦnφk, tak je urΦit∞ prvnφ metoda to pravΘ pro Vßs.

Druhß metoda je takΘ pom∞rn∞ jednoduchß, ovÜem mß to hßΦek. Takto deklarovanß vlastnost je p°φstupnß pouze b∞hem run-time. Pokud ale tato vlastnost nepot°ebuje ov∞°ovßnφ hodnoty a nenφ na nφ zßvislß ₧ßdnß dalÜφ vlastnost, pak je to docela dobr² postup. Jestli₧e ale pot°ebujete b²t informovßni o tom, ₧e se hodnota vlastnosti zm∞nila nebo pokud se klient (projekt, kter² VaÜi komponentu obsahuje) dotazuje na hodnotu vlastnosti, nebo pokud pot°ebujete na zßklad∞ hodnoty tΘto vlastnosti m∞nit jinou vlastnost prvku nebo volat jeho metody, pak musφte pou₧φt p°φkaz Property.

Zde je p°φklad:

Dim m_BackColor As Long 'privßtnφ prom∞nnß, do kterΘ se uklßdß hodnota barvy pozadφ

'vlastnost BackColor. Je volßna, pokud klient po₧aduje hodnotu  BackColor
Public Property Get BackColor() As Long
    BackColor = m_BackColor
'vracφ privßtnφ prom∞nnou
End Property

'toto je volßno, kdy₧ klient po₧aduje zm∞nu hodnoty BackColor
Public Property Let BackColor(ByVal New_BackColor As Long)
    'pokud je prom∞nnß pouze pro Φtenφ (Φili klient nem∙₧e zm∞nit jejφ hodnotu),
    'pak tuto proceduru nepot°ebujete


    'P°ed zapsßnφm novΘ hodnoty si na tomto mφst∞ m∙₧ete provΘst nap°φklad kontrolu, 
    'zda je barva korektnφ


    m_BackColor = New_BackColor
'nastavenφ privßtnφ prom∞nnΘ na novou hodnotu
    PropertyChanged "BackColor" 
'zm∞na vlastnosti
End Property

Zp∞t DalÜφ

Autor: The Bozena