🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.vbasic
Article #92402

Re: Zawsze duże litery

#92402
From: Marcin Miga
Date: Wed, 26 Oct 2005 07:21
71 lines
2434 bytes
wilus2 wrote:

> Co zrobić, żeby przy wpisywaniu do TextBoxa były zawsze wielkie
> litery.
> 
> Zrobiłem coś takiego:
> Private Sub Text6_Change()
> Text6 = UCase(Text6)
> End Sub
> i mam zawsze wielkie litery tylko jak przełączę na klawiaturze
> CapsLock-iem na małe litery (CapsLock wyłączony)to pisze mi wielkimi
> literami ale w spak (od tyłu).

Nie wiem o co chodzi z tym CapsLockiem, ale pisanie od tyłu może byc
spowodowane tym, że nie zapamiętujesz i nie odtwarzasz ostatniej
pozycji kursora w TextBoxie.
Prawidłowo to Twoja procedura powinna wyglądać tak:
<CODE>
Private Sub Text6_Change()
Dim intPos as Integer

intPos = Text6.SelStart
Text6.Text = UCase(Text6.Text)
Text6.SelStart = intPos

End Sub
</CODE>

A jak nadal będziesz miał z tym problemy, to proponuje przejść na API.
'Wystarczy' wysłać styl do okienka ES_UPPERCASE.
Przykład:
<CODE>
Option Explicit

DefLng L

Private Const ES_UPPERCASE As Long = &H8&
Private Const GWL_STYLE As Long = -16

Private Declare Function GetWindowLong Lib "user32.dll" _
        Alias "GetWindowLongA" _
        (ByVal hwnd As Long, _
        ByVal nIndex As Long) As Long

Private Declare Function SetWindowLong Lib "user32.dll" _
        Alias "SetWindowLongA" _
        (ByVal hwnd As Long, _
        ByVal nIndex As Long, _
        ByVal dwNewLong As Long) As Long

Private Sub Command1_Click()
Dim lngStyle, lngHwnd

lngHwnd = Text1.hwnd
lngStyle = GetWindowLong(lngHwnd, GWL_STYLE)

If lngStyle <> 0 Then
    lngStyle = lngStyle Or ES_UPPERCASE
    SetWindowLong lngHwnd, GWL_STYLE, lngStyle
End If

End Sub
</CODE>

Tu po wykonaniu Command1_Click, cokolwiek wpiszemy do Text1, to będzie
to zawsze wielkimi literami :)

pozdrawiaMM
-- 
Marcin M. Miga
"More matter with less art"
Technical Details
Message-ID: <C57BDD8470737A4D9F2CE5DEE25D7B9007E5E266@mailserver2.domdata.local>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!nf1.ipartners.pl!ipartners.pl!helios.domdata.com!DOMDATA3.BAUBODEN.com
References: <1281.00000010.435f19f1@newsgate.onet.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!nf1.ipartners.pl!ipartners.pl!helios.domdata.com!DOMDATA3.BAUBODEN.com
NNTP-Posting-Host: 192.168.151.148
Newsgroups: pl.comp.lang.vbasic
Date: Wed, 26 Oct 2005 09:21:49 +0200
Message-ID: <C57BDD8470737A4D9F2CE5DEE25D7B9007E5E266@mailserver2.domdata.local>
From: "Marcin Miga" <Marcin.Miga[@]gmail.com>
Subject: Re: Zawsze duże litery
References: <1281.00000010.435f19f1@newsgate.onet.pl>
User-Agent: XanaNews/1.17.5.9
MIME-Version: 1.0
Lines: 72
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit