Textový editor

Vytvořte jednoduchý textový editor s funkcemi podle obrázků. Text se bude zobrazovat v objektu RichTextBox. Místní nabídka se zobrazí po klepnutí pravým tlačítkem na objekt RichTextBox.

 

 

Private Sub cmdVybratVse_Click()

Rem Vybere celý text, ale viditelně ho neoznačí; zadá se první  a poslední znak výběru

RichTextBox1.SelStart = pořadí prvního znaku

RichTextBox1.SelLength = pořadí posledního znaku, nejlépe zjistit pomocí funkce, znáte z loňského roku, viz Soubory

End Sub

 

Private Sub RichTextBox1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)

Rem Zobrazení místní nabídky.

Parametr Shift zjistí stav kláves Alt, Ctrl, Shift.

Parametr Button vrátí, které tlačítko myši bylo zmáčknuté, levé = 1, prostřední = 4, pravé = 2.

x, y jsou souřadnice kurzoru.

 

Otestuje se, které tlačítko myši bylo zmáčknuté, pokud pravé, zobrazí se místní nabídka, která je nadefinovaná pomocí Menu Editoru.

Metoda, která zobrazí místní nabídku, se jmenuje PopUpMenu a váže se k formuláři, např. Form1.PopupMenu mnuMistni

End Sub

 

 

Private Sub mnuKonec_Click()

Rem Zavře textový editor

Otestuje se, zda se provedly v RichTextBoxu změny:

If JeNutnoUlozitZmeny Then

    If MsgBox("Chcete změny uložit?", vbYesNo, "V souboru byly provedeny změny") = vbYes Then

        If RichTextBox1.FileName <> "" Then

            RichTextBox1.SaveFile CDl1.FileName, rtfText 'konstanta udává typ ukládaného dokumentu - txt

        Else nastaví parametry okna „Uložit“ a pak ho zobrazí

            CDl1.FileName = ""

            CDl1.InitDir = "c:\Dokumenty\VB"

            CDl1.Filter = "Textové soubory (*.txt)|*.txt"

            CDl1.ShowSave

            RichTextBox1.SaveFile CDl1.FileName, rtfText

        End If

    End If

End If

End

End Sub

 

Private Sub mnuTisk_Click()

Zjistěte, k čemu slouží konstanty v této události

Rem cdlPDNoPageNums znepřístupní v Rozsah stránek přepínač Stránky

CDl1.Flags = cdlPDReturnDC + cdlPDNoPageNums

 

Rozdělte tisk, podle toho, jestli je nebo není označen nějaký text (vlastnost SelLength). Využijte konstanty: cdlPDAllPages, cdlPDSelection

 

CDl1.ShowPrinter

RichTextBox1.SelPrint CDl1.hDC ‘tisk na tiskarnu danou hDC

End Sub

 

 

Private Sub mnuZavrit_Click()

Připomíná vám to už něco?

Rem Ať se změny ukládají nebo ne, nastaví se proměnná JeNutnoUlozitZmeny na startovní hodnotu

Rem RichTextBox se vyprázdní

Rem Je potřeba změnit zpřístupnění funkcí v nabídce Soubor

End Sub

 

Private Sub ImgCentrovat_Click()

Rem Ikona pro vystředění textu

Vlastnost Tag objektu Image umožňuje zapamatovat si o daném objektu nějakou informaci, třeba stav objektu.

If Form1.imgCentrovat.Tag = "nahoře" Then

    Form1.imgCentrovat.Picture = LoadPicture("c:\dokumenty\Vbasic\menu\algnc-dwn.bmp")

    Form1.imgCentrovat.Tag = "dole"

    If RichTextBox1.SelLength > 0 Then

        RichTextBox1.SelAlignment = 2       ‘typ zarovnání 0, 1, 2

    End If

    imgZarVlevo.Tag = "nahoře"

    ImgZarVpravo.Tag = "nahoře"

    Form1.imgZarVlevo.Picture = LoadPicture("c:\dokumenty\Vbasic\menu\algnl-up.bmp")

    Form1.ImgZarVpravo.Picture = LoadPicture("c:\dokumenty\Vbasic\menu\algnr-up.bmp")

End If

End Sub

 

Private Sub ImgKurziva

Rem vrací nebo nastavuje styl písma vybraného textu: true kurziva, false normální

 

If

     Zapne kurziva

Else

     Vypne kurzivu

End IF

Form1.RichTextBox1.SelItalic = Not Form1.RichTextBox1.SelItalic

End Sub

 

Private Sub ImgOdrazky

RichTextBox1.SelBullet

RichTextBox1.SelIndent = odsazení zleva, nastavit v Twipech

RichTextBox1.SelHangingIndent = odsazení dalších řádků vůči prvnímu řádku, nastavit v Twipech

Rem hodnota je v Twips, ale dá se změnit ve vlastnosti ScaleMode

End Sub

 

Private Sub ImgPodtrzene   

Form1.RichTextBox1.SelUnderline

 

Private Sub ImgTucne

Form1.RichTextBox1.SelBold

End Sub

 

Private Sub mnuBarva_Click()

Rem jen otevře okno a obarví text

RichTextBox1.SelColor = CDl1.Color

End Sub

 

Private Sub RichTextBox1_Change()

JeNutnoUlozitZmeny = True

Rem Pokud se začne psát do prázdného RichTextBoxu (neotevře se nějaký soubor), musí se zpřístupnit funkce v nabídce Soubor

mnuZavrit

mnuUlozit

mnuOtevrit

mnuTisk.

End Sub

 

Formulář O aplikaci


Comments