Program do pomocy w szybkim czytaniu

Bardzo dawno temu interesowałem się szybkim czytaniem, mam kilka książek o tej tematyce i zaliczony kurs w szkole szybkiego czytania. Na pewno wielu z was którzy nigdy z tą tematyką nie mieli do czynienia zastanawia się czy to nie ściema z tym całym szybkim czytaniem. Otóż nie sztuka jest szybko czytać, sztuką jest rozumieć to co się czyta. Dajmy na ten przykład długi tekst, można go przeczytać szybko albo wolno jeśli ten co czytał wolno zapamiętał więcej szczegółów czytanego tekstu jego czytanie było efektywniejsze, lepiej przyswojone i zapamiętane. Co nas więc ogranicza dlaczego każdy z nas nie umie szybko czytać co stoi na przeszkodzie? Największą przeszkodą każdego szybko czytacza jest literowanie/czytanie w myślach. Każdy z nas na początku swojej edukacji był tak uczony od przedszkola. Jest takie mądre przysłowie: Jeden obraz przedstawia tysiąc słów. Jeśli potrafimy wyobrazić sobie fabułę czytanego tekstu dlaczego musimy go czytać dlaczego jeśli widzimy słowo „krowa” musimy najpierw przeczytać sobie słowo zanim wyobrazimy sobie zwierzę. Na kursach szybkiego czytania podczas czytania tekstu należało słuchać muzyki aby zagłuszyć czytanie w myślach. Ostatnio wymyśliłem ciekawy sposób na wyeliminowanie czytania w myślach i zamierzam pokazać wam jak taką aplikację zrobić abyście mogli ją spersonalizować i dostosować do swoich potrzeb. Dala tych co nie są zainteresowani tworzeniem aplikacji gotowy program do pobrania tutaj

Szybkie czytanie wersja 1.1

Program działa na podstawie wyświetlania słów bądź kilku słów na raz samodzielnie przerzucanych bądź czasowo wyświetlanych. Tutaj pewnie wiele osób zauważy, że takie programy już były i można je znaleźć w internecie mój program ma pewien bajer który może pomóc w uczeniu otóż istnieje możliwość wyświetlenia napisów od tyłu. Każdy z nas został nauczony czytać słowa które zna. Mój pomysł polega wyobrażaniu sobie słów które mózg zna ale nie znał ich od tej strony. Swoją drogą jestem bardzo ciekawy waszej opinii na ten temat.

Program jest bardzo prosty w obsłudze, do głównego okna wklejamy bądź wpisujemy tekst i przyciskamy przycisk „Organizuj tekst” wprowadziłem, takie ograniczenie ponieważ tekst nie zawsze jest jednakowo formatowany i jeśli weźmiemy tekst z internetu to może posiadać spacje między znakami interpunkcyjnymi co w efekcie zamiast pojawienia się słowa pojawi się przecinek albo kropka. Na początek najlepiej wypisać sobie np nazwy zwierząt albo przedmioty i starać się zrozumieć co znaczą, wizualizować sobie w myślach dany przedmiot nie czytając go.

Pełen projekt programu dostępny tutaj: projekt-Szybkie czytanie wersja 1.1

szybkie_czytanie1

 

Button2 ma ustawioną wartość „Enabled” na „False” Kod do pierwszej formy z opisem wygląda tak:

Public Class Form1
    'deklarujemy pubiczne zmienne
    Public ListaSlow As New List(Of String)
    Public tekst As String


    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        If TextBox1.Text.Length = 0 Then
            MsgBox("Wspisz text")
        Else
            'czyści listę słów
            ListaSlow.Clear()
            'początkowo przechowuje nasze słowa
            Dim wartosc As String()
            tekst = TextBox1.Text
            TextBox1.Clear()
            ' te linijki służą do podmieniania różnych wyjątków takich jak spacje między znakami interpunkcyjnymi itp
            ' jeśli tekst jest źle organizowany neleży dodać tutaj wyjątek
            tekst = Replace(tekst, " . ", ". ")
            tekst = Replace(tekst, " : ", ": ")
            tekst = Replace(tekst, " ! ", "! ")
            tekst = Replace(tekst, " ? ", "? ")
            tekst = Replace(tekst, " , ", ", ")
            tekst = Replace(tekst, vbNewLine, " ")
            ' wyświetla zmieniony tekst
            TextBox1.Text = tekst
            'dzieli tekst na słowa
            wartosc = tekst.Split(" ")
            ' wpisuje słowa do listy
            For i = 0 To wartosc.Length() - 1
                ListaSlow.Add(wartosc(i))
            Next
            ' aktywuje przycisk
            Button2.Enabled = True
        End If
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Form2.Show()
        Button2.Enabled = False
    End Sub

    Private Sub LinkLabel1_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
        Process.Start(" https://visualmonsters.cba.pl/index.php/program-do-pomocy-w-szybkim-czytaniu")
    End Sub
End Class

Następna forma jest trochę bardziej rozbudowana wygląda następująco:

szybkie_czytanie2Pełen rozkład elementów znajduje się poniżej

 

Rodzaj elementu Nazwa elementu ustawienia
Form Form2 Name: Form2
Text: Nauka szybkiego czytania
Size: 551;390
StartPosition: CenterScreen
Timer Timer1 Name: Timer1
Interval: 100
Label Label5 Name: Label5
Anchor: Top, Left
Location: 12; 17
Text: Ilość słów w liście:
Label Label6 Name: Label6
Anchor: Top, Left
Location: 116; 17
Text: 0
Label Label8 Name: Label8
Anchor: Top, Left
Location: 236; 17
Text: Pokazano słów:
Label Label7 Name: Label7
Anchor: Top, Left
Location: 340; 17
Text: 0
Label Label9 Name: Label9
Anchor: Top, Left
Location: 235; 85
Text: Wartość Timera:
Label Label10 Name: Label10
Anchor: Top, Left
Location: 340;85
Text: 0
Label Label2 Name: Label2
Anchor: Top, Left
Location: 6; 49
Text: Text align:
Label Label1 Name: Label1
Anchor: Top, Left
Location: 6; 84
Text: Text size:
Button Button4 Text: <<
Location: 18; 80
Anchor: Top, Left
Name: Button4
Button Button2 Text: Start
Location: 448; 12
Anchor: Top, Right
Name: Button2
Button Button5 Text: Stop
Location: 448; 41
Anchor: Top, Right
Name: Button5
Button Button3 Text: >>
Location: 448; 80
Anchor: Top, Right
Name: Button3
TextBox TextBox1 Name: Textbox1
Location: 15; 109
Anchor: Top, Left, Right
Size: 508; 20
TextAlign: Center
GroupBox GroupBox1 Text: Ustawienia
Location: 12; 229
Size: 508; 111
Anchor: Top, Left, Right
Name: GroupBox1
Wewnątrz GroupBox’a
Label Label4 Name: Label4
Anchor: Top, Left
Location: 239; 44
Text: Ilość wyświetlanych słów:
Label Label3 Name: Label3
Anchor: Top, Left
Location: 239;18
Text: sekund
Button Button1 Text: Aktywuj ustawienia własne
Location: 312; 79
Anchor: Top, Left
Name: Button1
NumericUpDown NumericUpDown2 Location: 104; 16
Size: 120; 20
Anchor: Top, Left
Name: NumericUpDown2
NumericUpDown NumericUpDown1 Location: 79; 79
Size: 120; 20
Anchor: Top, Left
Name: NumericUpDown1
NumericUpDown NumericUpDown3 Location: 375; 42
Size: 127; 20
Anchor: Top, Left
Name: NumericUpDown3
CheckBox CheckBox1 Text: Włącz timer
Location: 6; 19
Anchor: Top, Left
Name: CheckBox1
CheckBox CheckBox2 Text: Tędencja odwrócona
Location: 375; 19
Anchor: Top, Left
Name: CheckBox2
ComboBox ComboBox1 DropDownStyle: DropDownList
Location: 69; 47
Anchor: Top, Left
Name: ComboBox1Posiada trzy elementy:
left
right
center

 

Pełen kod wraz z opisem wygląda następująco:

Public Class Form2

    Dim listaOdTylu As New List(Of String) ' przechowuje odwrócone słowa
    Dim tendencjaOdwrocona As Boolean = False
    Dim Timer As Boolean = False
    Dim licznik As Integer = 0
    Dim TimerTick As Integer
    ''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ''' Ustawienia startowe
    ''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        NumericUpDown1.Value = TextBox1.Font.Size
        NumericUpDown3.Value = 1
        NumericUpDown2.Value = 3
        Label6.Text = Form1.ListaSlow.Count.ToString
        ComboBox1.SelectedIndex = 2
    End Sub

    ''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ''' Aktywator ustawień użytkownika
    ''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        ' zmienia wielkość czcionki w textboxie
        TextBox1.Font = New Font(TextBox1.Font.FontFamily, NumericUpDown1.Value, TextBox1.Font.Style)
        ' zmienia położenie słów (lewo, prawo, środek) w textboxie
        TextBox1.TextAlign = ComboBox1.SelectedIndex
        ' Generuje odwrócone słowa
        If CheckBox2.Checked = True Then
            listaOdTylu.Clear()
            For i As Integer = 0 To Form1.ListaSlow.Count - 1
                Dim zmieniony As String = ""
                Dim myArray As Char() = Form1.ListaSlow(i).ToCharArray()
                For k As Integer = myArray.Count - 1 To 0 Step -1
                    zmieniony += myArray(k).ToString
                Next
                listaOdTylu.Add(zmieniony)
            Next
            tendencjaOdwrocona = True
        Else
            tendencjaOdwrocona = False
        End If
        ' Udostępnia Timer do startu (opcja w button2)
        If CheckBox1.Checked = True Then
            Timer = True
        Else
            Timer = False
        End If
        ' odblokowuje przycisk
        Button2.Enabled = True
        ' zeruje wartość startową
        licznik = 0
    End Sub

    ''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ''' Przycisk Startu
    ''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        ' pętla sprawdzająca czy mamy do czynienia z tendencją odwróconych słów jeśli tak to ...
        If tendencjaOdwrocona = True Then
            ' sprawdza czy Timer jest odblokowany jeśli tak...
            If Timer = True Then
                licznik = 0
                'uruchamia timer
                Timer1.Start()
                TimerTick = NumericUpDown2.Value
                Button5.Enabled = True
                Button3.Enabled = False
                Button4.Enabled = False
                TextBox1.Clear()
            Else
                ' wyświetla piersze słowo/słowa w textboxie (te odwrócone)
                For i As Integer = licznik To licznik + NumericUpDown3.Value - 1
                    TextBox1.Text += listaOdTylu(i).ToString + " "
                Next
                licznik = licznik + NumericUpDown3.Value
                Button3.Enabled = True
                Button4.Enabled = True
                TextBox1.Clear()
            End If
        Else
            ' sprawdza czy Timer jest odblokowany jeśli tak...
            If Timer = True Then
                licznik = 0
                'uruchamia timer
                Timer1.Start()
                TimerTick = NumericUpDown2.Value
                Button5.Enabled = True
                Button3.Enabled = False
                Button4.Enabled = False
                TextBox1.Clear()
            Else
                ' wyświetla piersze słowo/słowa w textboxie
                For i As Integer = licznik To licznik + NumericUpDown3.Value - 1
                    TextBox1.Text += Form1.ListaSlow(i).ToString + " "
                Next
                licznik = licznik + NumericUpDown3.Value
                Button3.Enabled = True
                Button4.Enabled = True
                TextBox1.Clear()
            End If
        End If
        'Unieruchamia przycisk Start
        Button2.Enabled = False
    End Sub

    ''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ''' Przycisk w prawo ">>"
    ''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        ' pętla sprawdzająca czy mamy do czynienia z tendencją odwróconych słów jeśli tak to ...
        If tendencjaOdwrocona = True Then
            'czyści textboxa
            TextBox1.Clear()
            ' jeśli licznik pokazanych słów z dodanymi ilościami wyświetlanych słów jest większy niż 
            ' ilość słów w liście słów wtedy zeruje licznik słów i pokazuje pozostałe słowa
            If licznik + NumericUpDown3.Value - 1 >= listaOdTylu.Count Then
                For i As Integer = licznik To listaOdTylu.Count - 1
                    TextBox1.Text += listaOdTylu(i).ToString + " "
                Next
                licznik = 0
            Else
                'wyświetla odpowiednią ilość słów w textboxie
                For i As Integer = licznik To licznik + NumericUpDown3.Value - 1
                    TextBox1.Text += listaOdTylu(i).ToString + " "
                Next
                'sumuje licznik
                licznik = licznik + NumericUpDown3.Value
                'wyświetla ilość pozostałych do wyświetlenia słów
                Label7.Text = listaOdTylu.Count - licznik
            End If
        Else
            TextBox1.Clear()
            ' jeśli licznik pokazanych słów z dodanymi ilościami wyświetlanych słów jest większy niż 
            ' ilość słów w liście słów wtedy zeruje licznik słów i pokazuje pozostałe słowa
            If licznik + NumericUpDown3.Value - 1 >= Form1.ListaSlow.Count Then
                For i As Integer = licznik To Form1.ListaSlow.Count - 1
                    TextBox1.Text += Form1.ListaSlow(i).ToString + " "
                Next
                licznik = 0
            Else
                'wyświetla odpowiednią ilość słów w textboxie
                For i As Integer = licznik To licznik + NumericUpDown3.Value - 1
                    TextBox1.Text += Form1.ListaSlow(i).ToString + " "
                Next
                'sumuje licznik
                licznik = licznik + NumericUpDown3.Value
                'wyświetla ilość pozostałych do wyświetlenia słów
                Label7.Text = Form1.ListaSlow.Count - licznik
            End If
        End If
    End Sub

    ''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ''' Zaznaczenie Checkboxa z Timerem odblokowuje NumericUpDown
    ''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
        If CheckBox1.Checked = True Then
            NumericUpDown2.Enabled = True
        Else
            NumericUpDown2.Enabled = False
        End If
    End Sub

    ''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ''' Obsługuje czasowe wyświetlanie słów
    ''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        TimerTick -= 1
        Label10.Text = TimerTick.ToString

        If TimerTick = 0 Then
            ' pętla sprawdzająca czy mamy do czynienia z tendencją odwróconych słów jeśli tak to ...
            If tendencjaOdwrocona = True Then
                'czyści textboxa
                TextBox1.Clear()
                TextBox1.Clear()
                ' jeśli licznik pokazanych słów z dodanymi ilościami wyświetlanych słów jest większy niż 
                ' ilość słów w liście słów wtedy zeruje licznik słów i pokazuje pozostałe słowa
                If licznik + NumericUpDown3.Value - 1 >= listaOdTylu.Count Then
                    For i As Integer = licznik To listaOdTylu.Count - 1
                        TextBox1.Text += listaOdTylu(i).ToString + " "
                    Next
                    'zeruje licznik
                    licznik = 0
                    'zatrzymuje Timer
                    Timer1.Stop()
                    'odblokowuje przycisk Start
                    Button2.Enabled = True
                Else
                    'wyświetla odpowiednią ilość słów w textboxie
                    For i As Integer = licznik To licznik + NumericUpDown3.Value - 1
                        TextBox1.Text += listaOdTylu(i).ToString + " "
                    Next
                    'sumuje licznik
                    licznik = licznik + NumericUpDown3.Value
                    'wyświetla ilość pozostałych do wyświetlenia słów
                    Label7.Text = listaOdTylu.Count - licznik
                    'wyświetla aktualny czas
                    TimerTick = NumericUpDown2.Value
                End If
            Else
                TextBox1.Clear()
                ' jeśli licznik pokazanych słów z dodanymi ilościami wyświetlanych słów jest większy niż 
                ' ilość słów w liście słów wtedy zeruje licznik słów i pokazuje pozostałe słowa
                If licznik + NumericUpDown3.Value - 1 >= Form1.ListaSlow.Count Then
                    For i As Integer = licznik To Form1.ListaSlow.Count - 1
                        TextBox1.Text += Form1.ListaSlow(i).ToString + " "
                    Next
                    'zeruje licznik
                    licznik = 0
                    'zatrzymuje Timer
                    Timer1.Stop()
                    'odblokowuje przycisk Start
                    Button2.Enabled = True
                Else
                    'wyświetla odpowiednią ilość słów w textboxie

                    For i As Integer = licznik To licznik + NumericUpDown3.Value - 1
                        TextBox1.Text += Form1.ListaSlow(i).ToString + " "
                    Next
                    'sumuje licznik
                    licznik = licznik + NumericUpDown3.Value
                    'wyświetla ilość pozostałych do wyświetlenia słów
                    Label7.Text = Form1.ListaSlow.Count - licznik
                    'wyświetla aktualny czas
                    TimerTick = NumericUpDown2.Value
                End If
            End If
        End If

    End Sub

    ''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ''' Obsługuje przycisk Stop
    ''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
        Timer1.Stop()
        Button2.Enabled = True
    End Sub

    ''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ''' Przycisk w prawo "<<"
    ''' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        ' Przycisk cofa słowo o jeden do tyłu
        ' pętla sprawdzająca czy mamy do czynienia z tendencją odwróconych słów jeśli tak to ...
        If tendencjaOdwrocona = True Then
            'czyści TextBox
            TextBox1.Clear()
            'Sprawdza czy przypadkiem cofnięcie o jeden nie spowoduje wyjścia
            'poza granice listy
            If licznik - 1 = 0 Then
                TextBox1.Text += listaOdTylu(0).ToString + " "
            Else
                'zmniejsza licznik o jeden
                licznik = licznik - 1
                For i As Integer = licznik - 1 To licznik - 1
                    'wyświetla slowo
                    TextBox1.Text += listaOdTylu(i).ToString + " "
                Next
                'wyświetla aktualną pozycję słowa 
                Label7.Text = listaOdTylu.Count - licznik
            End If
        Else
            TextBox1.Clear()
            If licznik - 1 = 0 Then
                TextBox1.Text += Form1.ListaSlow(0).ToString + " "
            Else
                'zmniejsza licznik o jeden
                licznik = licznik - 1
                For i As Integer = licznik - 1 To licznik - 1
                    'wyświetla slowo
                    TextBox1.Text += Form1.ListaSlow(i).ToString + " "
                Next
                'wyświetla aktualną pozycję słowa 
                Label7.Text = Form1.ListaSlow.Count - licznik
            End If
        End If
    End Sub

End Class

To by było na tyle, nie miałem do końca pomysłu na ten przycisk „<<” ale mam nadzieję, że sobie poradzicie sami, jeśli nie służę poradą. Pozdrawiam wszystkich czytelników.

 

 

 

Permalink do tego artykułu: https://visualmonsters.cba.pl/program-do-pomocy-w-szybkim-czytaniu/

Dodaj komentarz

Twój adres email nie będzie publikowany.