Hirdetés
- Az ARM részvényeinek eladásában csúcsosodott ki az NVIDIA felvásárlási kísérlete
- Jobb tömörítő algoritmussal kínálja meg a DirectStorage API-t a Microsoft
- Mi történik, ha minden PCIe slot tele van?
- Nagy mennyiségben gyártja HBM3 memóriáját a kínai CXMT
- Felkészült az LPDDR6-ra az SK Hynix és a Samsung
- Fejhallgató erősítő és DAC topik
- Máris elfogytak az idei évre szánt HDD-k a Western Digitalnál
- 3D nyomtatás
- Vezeték nélküli fülhallgatók
- Nem indul és mi a baja a gépemnek topik
- Azonnali alaplapos kérdések órája
- Házimozi belépő szinten
- 5.1, 7.1 és gamer fejhallgatók
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Milyen monitort vegyek?
Új hozzászólás Aktív témák
-
Cpt. Flint
tag
válasz
ArchElf
#1500
üzenetére
Általánosságban: jó, majd olvasgatok, ha lesz időm. (de azért, mert _itt_ újonc vagyok, még nem bizti, hogy totál hülye is.)
VB 6.5, Office 2003 SP31-2. Melyik függvény hozza létre újra, ha public?
Én ezt csináltam (volna, ha menne):Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) 'Ügyirat főszámba csak számot enged írni
Dim vezerlo As Object
set vezerlo = ActiveControl
csakszamEnd Sub
Sub csakszam()
If Shift <> 0 Then
vezerlo.Locked = True
Else
If KeyCode = 8 Or KeyCode = 46 Or _
(KeyCode >= 48 And KeyCode <= 57) _
Or (KeyCode >= 96 And KeyCode <= 105) Then
vezerlo.Locked = False
Else
vezerlo.Locked = True
End If
End IfEnd Sub
Úgy gondoltam, hogy amikor a KeyDown subból meghívom a csakszam subot, akkor a KeyCode és a Shift ott is ugyanazt az értéket fogja még tartalmazni. De nem, ezek kiürülnek. Akkor is, ha külön felveszem őket public változóként. Ezért a KeyDown subban mindkettő értékét kiíratom egy-egy saját változóba (kc=KeyCode, ks=Shift) és a csakszam subban már azokat használom. Ez nem probléma, csak két plusz sor és két plusz változó.
Kipróbáltad, hogy át lehet-e adni (úgy, ahogy írtad) a KeyCode-ot? Mert nálam nem lehet, csakszam TextBox1, KeyCode-re ezt kapom: Compile error: ByRef type mismatch.
És mint írtam, pont azt szeretném elkerülni, hogy a TextBox1-et bárhol is leírjam (értékadásba vagy érték átadásba), mert azt majd akkor minden egyes subban át kell írnom a megfelelőre (ráadásul még ComboBox is lesz). Ezért szeretném az ActiveControlt használni helyette, ami általános, és elvileg mindig azt adná, ami épp kell).
"le kell ellenőrizni, hogy az aktuális ActiveControl TextBox-e"
Leellenőriztem, nem az. De MIÉRT nem az, mikor azon van a fókusz, abban szerkesztek, abból fut le a KeyDown sub??? A VB helpje szerint az ActiveControl az, amelyik épp fókuszban van. De mégsem a TextBox1-et kapom, hanem a MultiPage1-et.
Próbáltam így: set vezerlo=MultiPage1.Pages(0).ActiveControl. Ez eggyel beljebb vitt, mert így Frame1-et kaptam eredménynek, amiben a TextBox1 is van, de még mindig nem a textboxot... És ez már ebben a formában úgysem érne semmit, hiszen már akkor ha a konkrét lapot meg kell adnom, az sem jobb semmivel, mintha éppenséggel a konkrét vezérlőt adom meg.
Én sem igen szeretem a globális változókat szaporítani, de miért kell elfelejteni? Van valami komoly hátrányuk?
3. Miért lenne hack? Ez egy egyszerű, frappáns megoldás, egy darab létező tulajdonságot állítok át, és a felhasználó annyit lát, hogy ha nem megfelelő billentyűt nyom, egész egyszerűen nem történik semmi. Nyista vágólap, mert a Ctrl+akármit ez a rutin a KeyCode-ok közül nem engedélyezi (ugye vizsgálom a Shift-et, és ha nem 0, akkor eleve locked, de ha éppen nem a Ctrl-ra, akkor meg a v-re lenne az).
4. sem a VB helpjében, sem az Object Browserben nem találok MaskedEditet, egyetlen Mask tulajdonságot leltem, ami csak a CommandBarButton-ra alkalmazható.
Osztályom sincs olyan, hogy MaskEdBox, vagy akár MaskedTextBox. Sőt, az ominózus MSMASK32.OCX sem található meg a gépemen.Egyébként természetesen köszönöm a segítséget és az eszmecserét, sokat tanulok belőle.

Új hozzászólás Aktív témák
- Kínai és egyéb olcsó órák topikja
- Apró változásokkal, elődjénél jobb áron kezd a Google Pixel 10a
- Beleremegett Hollywood Brad Pitt és Tom Cruise AI harcába
- Rövid kedvcsináló előzetest kapott a Marathon
- Nintendo Switch
- Fejhallgató erősítő és DAC topik
- LEGO klub
- Apple iPhone Air - almacsutka
- Máris elfogytak az idei évre szánt HDD-k a Western Digitalnál
- A Pixel 9 AirDropot, a Pixel 11 Face ID-t kap
- További aktív témák...
- BOMBA ÁRrR! Lenovo ThinkPad T14s Gen 4 Ryzen 5 PRO 7540U 14" FHD+ 32GB 1TB Lenovo gar: 2028.01.07!
- ZBook Fury 17 G8 17.3" FHD IPS i7-11850H T1200 32GB 512GB NVMe ujjolv IR kam gar
- Félkonfig: i7-14700KF + Gigabyte Z790 Aorus Elite AX-W (2024-es szett, Garanciális!)
- ID-COOLING IS-50X V2 low profile hűtő, 50mm magas
- Apple iPhone 12 64GB, Kártyafüggetlen, 1 Év Garanciával
- Dell Precision 7550 i7-10850H 32GB 512GB Nvidia RTX5000 16GB 1 év garancia
- Csere-Beszámítás! WD Black SN850X 4TB Nvme SSD!
- Xiaomi 14T / 12/256GB / Kártyafüggetlen / 12Hó Garancia
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB DDR5 RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
- Telefon felvásárlás!! Samsung Galaxy A22/Samsung Galaxy A23/Samsung Galaxy A25/Samsung Galaxy A05s
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest



