Forum WSKiZ Strona Główna

WSKiZ
Forum studentów wskiz -> Informatyka [rekrutacja wiosenna 2006]
 

okienkowo troche

 
Napisz nowy temat   Odpowiedz do tematu    Forum WSKiZ Strona Główna -> programowanie
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
hanziri
Administrator



Dołączył: 05 Kwi 2006
Posty: 126
Przeczytał: 0 tematów

Skąd: Kalisz

PostWysłany: Śro 16:36, 28 Cze 2006    Temat postu: okienkowo troche

Dałem nowy temat, ponieważ nie chcę mieszać w temacie "konsolowym"

Problem następujący:
Każdy z nas zna funkcje pogrub, podkreśl, pochyl. Wpadłem na pomysł sprawdzenia jak to zrobić w vb...

Potrzebujemy Formatkę oraz:
- 3 check box (chkPodkresl, chkPochyl, chkPogrub)
- 1 text box (txtUstawianie)

Wszystko jest proste na początku, ale jak tu zrobić żeby uzykać podkreśloną i pogrubioną kursywę - takie 3w1 Smile ??

ja rozwiązałem problem stosując CASE:


Kod:

'------------------------------------------

    Dim zmiana As Byte

Private Sub format_textu()
        Select Case zmiana
            Case Is = 0 : txtUstawianie.Font = New Font(txtUstawianie.Font, FontStyle.Regular)
            Case Is = 1 : txtUstawianie.Font = New Font(txtUstawianie.Font, FontStyle.Underline)
            Case Is = 2 : txtUstawianie.Font = New Font(txtUstawianie.Font, FontStyle.Italic)
            Case Is = 3 : txtUstawianie.Font = New Font(txtUstawianie.Font, FontStyle.Italic + FontStyle.Underline)
            Case Is = 4 : txtUstawianie.Font = New Font(txtUstawianie.Font, FontStyle.Bold)
            Case Is = 5 : txtUstawianie.Font = New Font(txtUstawianie.Font, FontStyle.Bold + FontStyle.Underline)
            Case Is = 6 : txtUstawianie.Font = New Font(txtUstawianie.Font, FontStyle.Bold + FontStyle.Italic)
            Case Is = 7 : txtUstawianie.Font = New Font(txtUstawianie.Font, FontStyle.Bold + FontStyle.Underline + FontStyle.Italic)
        End Select
    End Sub
   
    Private Sub chkPodkresl_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkPodkresl.CheckedChanged
        If chkPodkresl.Checked = True Then      'przy tej funkcji zastosowałem licznik
            zmiana = zmiana + 1                 'w celu uzyskania możliwości zaznaczenia
        End If                                  'kilku opcji np. pogrubiona kursywa
        If chkPodkresl.Checked = False Then     'stosuje zwykła =0, pogrub=4, pochyl= 2, podkresl=1
            zmiana = zmiana - 1                 '4 a nie 3 bo 0+1+2=3 wiec by sie chrzaniło:)
        End If
        Call format_textu()                     'nazwałem format_textu() tu sie odwołuje
    End Sub

    Private Sub chkPochyl_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkPochyl.CheckedChanged
        If chkPochyl.Checked = True Then
            zmiana = zmiana + 2
        End If
        If chkPochyl.Checked = False Then
            zmiana = zmiana - 2
        End If
        Call format_textu()
    End Sub

    Private Sub chkPogrub_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkPogrub.CheckedChanged
        If chkPogrub.Checked = True Then
            zmiana = zmiana + 4
        End If
        If chkPogrub.Checked = False Then
            zmiana = zmiana - 4
        End If
        Call format_textu()
    End Sub
'---------------------------------------------------


Ostatnio zmieniony przez hanziri dnia Pon 20:35, 03 Lip 2006, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora
baldhorse




Dołączył: 13 Cze 2006
Posty: 59
Przeczytał: 0 tematów

Skąd: Poznań

PostWysłany: Czw 9:03, 29 Cze 2006    Temat postu:

nooo całkiem fajne!
Wiem, że istnieje sposób na to by w procedurze format_textu() nie było Select...Case'a, ale nie moge znaleźć algorytmu ani sklecić czegoś własnego... tym bardziej dzisiaj... Wink
Już wyjaśniam o co mi chodzi, gdybyś dodał jeszcze jedną opcję np. tekst przekreślony, wszystkich kombinacji byłoby już... yyy znacznie więcej Smile i jest taki algorytm, który z sumy potęg dwójki wyciąga które to są potęgi, to ma odzwierciedlenie w hexie, np.
22 = (1 * 2^4) + (0 * 2^3) + (1 * 2^2) + (1 * 2^1) + (0 * 2^0)
co daje: 1 0 1 1 0
czyli 22 w hexie to: 10110, zakładając, że kolejno jest: 16 | 8 | 4 | 2 | 1
otrzymujemy, że jeżeli wartość wynosi 22 to zaznaczone są opcje, którym przypisane sa wartości: 16, 4 i 2.
Kto wie jaki to algorytm? Pamiętam, że coś tam było z pierwiastkowaniem...
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum WSKiZ Strona Główna -> programowanie Wszystkie czasy w strefie CET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
deoxGreen v1.2 // Theme created by Sopel stylerbb.net & programosy.pl

Regulamin