|
WSKiZ Forum studentów wskiz -> Informatyka [rekrutacja wiosenna 2006] |
|
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
|
Wysł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 ??
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 |
|
|
|
|
baldhorse
Dołączył: 13 Cze 2006
Posty: 59
Przeczytał: 0 tematów
Skąd: Poznań
|
Wysł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...
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 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 |
|
|
|
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
|
|