Vyrábíme kontrolní prvek ActiveX 3.díl

V tomto díle si ukážeme jak vyrobit metody pro nalezení a nahrazení textu.

Otevřete si skupinu projektů NewTextBox.vbg (nebo jinou, podle toho jak jste ji pojmenovali).

Vytvoření metody je velice jednoduché (určitě jednodušší než vytvoření vlastnosti). Vytváří se tak, že vytvoříte Public Function, která musí být obecně zadaná proměnnými, které potom při volání této metody vyplníte jako její parametry. Začneme metodou pro vyhledávání, která nám jako výsledek dá hodnotu True/False (nalezeno/nenalezeno), proto fce musí být As Boolean. Využijeme For cyklu a budeme prohledávat celý řetězec a zkoušet zda se tam nenachází námi hledané slovo (parametr Co as String). Pokud bude nalezeno fce nabyde hodnoty True (jinak zůstane False).

Public Function Find(Co As String) As Boolean
Dim i As Integer
    For i = 1 To Len(txtMain.Text)
        If Mid(txtMain.Text, i, Len(Co)) = Co Then
            Find = True
            Exit For
        End If
    Next
End Function

Nyní si metodu vyzkoušíme: otevřete si druhý projekt (standard EXE) z této skupiny a pokud to ještě nemáte, tak vykreslete NewTextBox a ještě jedno tlačítko na Form. A zapište tento kód, který bude hledat slovo 'Ahoj' a následně nám MsgBoxem dá vědět zda bylo slovo nalezeno:

Private Sub Command1_Click()
    MsgBox NewTextBox1.Find("Ahoj")
End Sub

Vytvoření metody pro nahrazení textu je o něco složitější (ne z hlediska ActiveX, ale programově). Opět vytvoříme Public Function. Vlastně složitější modifikaci předchozí fce:

Public Function Nahraď(Co As String, Čím As String)
Dim i As Integer
Znovu:
    For i = 1 To Len(txtMain.Text)
        If Mid(txtMain.Text, i, Len(Co)) = Co Then
            txtMain.Text = Mid(txtMain.Text, 1, i - 1) & Čím & Mid(txtMain.Text, i + Len(Co), Len(txtMain.Text) - Len(Co))
        GoTo Znovu
        End If
    Next
End Function

A opět si to hned vyzkoušíme. Vykreslete na Form (u standard EXE projektu) další tlačítko a napište tento kód, který každé slovo 'Ahoj' nahradí slovem 'Čau':

Private Sub Command2_Click()
    NewTextBox1.Nahraď "Ahoj", "Čau"
End Sub

Zdroják stahujte zde.

A tímto končí náš seriál. Doufám, že byl k něčemu dobrý a že jste se tu něco dozvěděli.

Předchozí díl       Zpět na seznam seriálů