- D1Rect: Nagy "hülyétkapokazapróktól" topik
- lezso6: Nem látszik a kurzor Chrome alatt a beviteli mezőkben?
- Lalikiraly: SÜNI energiaital.
- gban: Ingyen kellene, de tegnapra
- user2: Kia Ceed Gold 160 1.5 T-GDI MY2024
- sziku69: Fűzzük össze a szavakat :)
- Elektromos rásegítésű kerékpárok
- Gurulunk, WAZE?!
- eBay-es kütyük kis pénzért
- bambano: Bambanő háza tája
Új hozzászólás Aktív témák
-
Victorius
tag
Sziasztok!
Van egy kis ínyencségem a VB-guruk számára (illetve hát lehet, hogy nekik nem az, de nekem az volt).
Szóval van egy jó kis VBA-program, gondoltam belenézek a .dot-fájljába. Jelszó nem gond, megoldom. Hát, egyszerűen tüneményesen van megírva, utoljára C64-en láttam ilyesmit: kétkarakteres változónevek (és eljárásnevek is)...Az egész úgy van megírva, hogy egészen biztosan belezavarodjon az ember. Na nem baj, azért szöszmötölgetek benne, rájövök pár dologra, a végén gondolom, debuggolom egy kicsit: telerakom debug.printekkel.
Na most jön a poén: jönnek a kiírások az immediate-ablakba, úgy tűnik, minden rendben. Node amikor az a programrészlet (vagy programrészletek) kerül(nek) sorra, ami(k) igazán érdekel(nek), hirtelen az eredmény egy nagy rakás sz*r lesz: úgy tűnik, mintha valahogy belenyúlna a debug ablakba vagy elkódolja a karaktereket, hogy ne az kerüljön bele, aminek kellene.
Hogyan lehet ezt megcsinálni? És hogyan lehet védekezni ellene? -
Victorius
tag
-
Victorius
tag
-
Victorius
tag
Sziasztok!
Én is kérdeznék valamit ezzel a ''levágok egy darabot egy szövegből'' témával kapcsolatban.
Tehát adott egy sor:
If W0 = '''' Then Exit Sub Else W0 = Left(Trim$(W0) + ''--------'', 8).
Vagyis nyolc kötőjelet fűz a füzérhez, hogy azután mindjárt le is vágja. MI ennek az értelme? -
Victorius
tag
Left(füzér, hossz).
Tehát pl.
sA=''Helló világ!''
sB=Left(sA, 5)
sB ez lesz: ''Helló''
A párja a right, az univerzális megoldás pedig a mid, amiel akár középről is kiemelhetsz részeket. A formátuma MID(füzér, kezdet, vég). A vég megadása nem kötelező, ilyenkor a füzér végéig megy. -
Victorius
tag
Hát, a hálón van valami Visual Basic developper forum. Meg egy csomó egyéni honlap. Igazán kezdőknek való cuccról nincs tudomásom. Én is a nyomtatott változatokat ajánlom. A kék könyvet például.
-
Victorius
tag
Azt én tudom. Mégis ugyanazokból a könyvekből lehet megtanulni. Legalábbis az alapjait.
Sajnos VBA-ból nem tudok semmilyen magyarul megjelent könyvről, illetve van egy régi, még a '97-es Excelhez, azzal meg nem sokat érek (nem azért , mert régi, hanem azért, mert Excel). Marad a súgó (no meg a makrórögzítő....
-
Victorius
tag
-
Victorius
tag
A Turbo Pascalt én is szeretem. Ahhoz képest a VB nagyon gyönge néhány dologban (pl. a változótípusok elég szegényesek, felhasználói típust éppen lehet definiálni, de a Pascal-féle variáns típushoz képest ez meglehetősen nevetséges... stb).
-
Victorius
tag
Jó könyv, csak egy kicsit ''sokat akar a szarka...'' érzésem van tőle. (Jó vastag, de egyrészt annyi mindent szeretne átfogni, hogy aztán semmiben sem tud elmélyedni igazán, másrészt egyszerre akarja a ''vezessük végig a tanulót egy-egy példán, lépésről-lépésre (=jó értelemben szájbarágósan, receptszerűen) módszer szerint tanítani , ugyanakkor sok dologról csak utalásszerűen tesz említést).
Én másodikként a Computerbooks könyvét ajánlanám (Programozzunk Visual Basic rendszerben). Ha nem vagy egészen kezdő, akkor szerintem az a jobb. (Én az voltam (vagyokehhez az egész Windows alatti programozáshoz, és az első időkben nagyon jó szolgálatot tett a kék könyv, de aztán inkább emezt forgattam.) Ja, van különy könyv hozzá programozási példákkal, feladatokkal.
Nekem is van egy kérdésem: a fetekete könyv nem csak a .NET-ről szól? -
Victorius
tag
Nekem is lenne egy kérdésem.
Meg szeretném nézni egy Word dokumentumban a VB rutinokat, de a projekttallózóban nem is engedi megnyitni magát a projetktet sem arra hivatkozva, hogy ''zárolva van''.
Jelszóval védettel már találkoztam, az OK. De ez ellen lehet valamit tenni? -
Victorius
tag
Sonarr: Azok a sorok, illetve az str függvény használata, lehet, hogy fölösleges...
Elvieg arra jó, hogy a számból füzért (stringet -> str) csináljon, és azt rakja bele a label vezérlő Caption tulajdonságába (vagyis kiírja a képernyőre).
Lehet, hogy a Visaul Basic automatikusan megcsinál egy csomó típuskonverziót, köztük ezt is. Viszont a tudós könyvem azt írja, hogy ezeknek a konverzióknak nem mindig az az eredménye, amire mi gondolunk, amit mi szeretnénk, és így ravasz hibákat eredményezhetnek. Jelen esetben lehet, hogy nem lehet többféleképpen értelmezni és oknvertálni) ezt a kifejezést, de én azért az egyértelmű ''megfogalmazást'' szeretném megszokni.
A forrást küldöm! -
Victorius
tag
Elnézést, az elején a Dim-ek alól kimaradt egy értékadás:
megall=false
(Volt ott még egy msgbox, meg egy goto is (azért van a rutin végén cimke), és kitöröltem azokkal együtt.) -
Victorius
tag
Az a helyzet, hogy én is az voltam eddig
Kipróbáltam ezt itt alant, és a stop gombra megállt!
Szóval:
Private Sub Indit_Click()
Dim a As Long
Dim b As Long
Dim c As Long
Dim openforms
Do
a = 0: b = 0: c = 0
If megall = True Then Exit Do
Do
b = 0: c = 0
a = a + 1
If a = 1000000000 Then Exit Do
If megall = True Then Exit Do
sz1.Caption = Str(a)
Do
c = 0
b = b + 1
If megall = True Then Exit Do
If b = 1000000000 Then Exit Do
sz2.Caption = Str(b)
Do
c = c + 1
If c = 1000000000 Then Exit Do
If megall = True Then Exit Do
sz3.Caption = Str(c)
If c Mod 1000 = 0 Then openforms = DoEvents()
Loop
Loop
Loop
Loop
vege:
End Sub
Hmm, hát ha azt mondod, kicsit eltúloztam a ciklusok számát, nyilván igazad van... (meg biztosan nem is túl szép a kód).
Tehát ez volt az indítógomb eljárása. A megállító csak annyit tartalmaz, mint a tiéd (átállítja igazra a megall változót).
Apropó megall változó. Hiányolhatod, hogy hol deklaráltam. Létrehoztam egy külön modult csak ennek a kedvéért:
Public megall as boolean
Ez azért van így, mert csak itt lehet globálisan deklarálni egy változót. Persze elképzelhető, hogy nem kell ennyire túlbonyolítani, de nálam csak így akaródzott menni.
Szóval ez a bizonyos DoEvents() utasításként is alkalmazható, de függvény formájában kell meghívni (és jelen esetben tökmindegy, mivel tér vissza).
Jó munkát! -
Victorius
tag
Hát, az az igazság, hogy rábukkantam valamire, de jó szokásomhoz híven kipróbálni nem tudtam. Szóval lehet, hogy erre van szükséged:
DoEvents()
''Az utasításként használt függvény egy esemény feldolgozásának idejére átadja a vezérlést az operációs rendszernek. Használata esetén a program ugyan lassabban működik, de a formok fogadják a beavatkozásainkat.''
A súgó (többek között) ezt írja:
''DoEvents is most useful for simple things like a l l o w i n g a u s e r to c a n c e l a p r o c e s s a f t e r i t h a s s t a r t e d, for example a search for a file.''
A használatához nézd meg a példát a súgóban (vagy kérdezz meg egy nálam okosabbat....
Remélem, tudtam segíteni. -
Victorius
tag
Ja, még a goto-hoz: ha csak számot adsz meg címkének (a la Commodore basic), akkor nem kell utána kettőspont.
-
Victorius
tag
Ja, még a goto-hoz: ha csak számot adsz meg címkének (a la Commodore basic), akkor nem kell utána kettőspont.
-
Victorius
tag
Sajnos kipróbálni még nem tudtam, de azt javaslom, hogy azt az a változót pedig próbáld meg modulszinten globálisnak deklarálni:
public a as boolean
Ezt úgy írd be, hogy a form kódszerkesztő ablaka fölötti választóban válaszd ki a (General)-t. (Ekkor a jobbra elhelyezkedő választóban a (Declarations) jelenik meg.)
Sik sikert! -
Victorius
tag
Hát, ami a goto-t illeti, azt úgy kell használni, hogy a kódban elhelyezhetsz ilyen cimkéket, mint pl
cimke:
Arra vigyázz, hogy kettőspontra végződjön, és külön sorba kerüljön. Aztán erre ugorhatsz goto cimkével (itt már kettőspont nélkül).
Azt fejből nem tudom, hogy csak adott modulon belülre érvényes-e (gyanítom, igen), próbálkozz
Ami másik dolgot illeti, még gondolkozom (én is csak hobbiprogramozó vagyok...) -
Victorius
tag
Köszi a segítséget! Végül a UserForm_Activate()-tel működik.
(Csak tudnám, hogy miért írja akkor két könyv is ezt a UserForm_Load()-ot mint etalont...) -
Victorius
tag
Idáig OK. A gond akkor van, ha a programból szeretném módosítani az értékét. Konkrétan van egy mező, amelyben a dátum szerepel, és én a (mindig változó) year(date) kifejezést szeretném beletölteni.
A UserForm_Click() eseményre megcsinálja egy kattintással, de a UserForm_Load()-ra (vagyis a elvileg a form betöltődésekor) meg nem csinál semmit. -
Victorius
tag
Sziasztok! Abszolút kezdő lévén, kérelek Benneteket, ne haragudjatok meg ezért a (nyilván) triviális kérdésért.
Szóval már az elején elakadtam. Nem tudok beállítani néhány default értéket a beviteli mezőkbe (pl. dátum). Van ugye a Form_Load() eljárás erre a célra, de nekem egyszerűen nem működik. Pl. a Form_Click()-re szépen megcsinál mindent, dehát nekem az kellene, ha automatikusan működne. Próbáltam rendes VB6 alatt és az Office2000-hez adott editorban is, de az eredmény ugyanaz (semmi).
Kérem, aki tudja, mit csinálok rosszul, írja meg! Előre is köszönet!
Új hozzászólás Aktív témák
Hirdetés
- Samsung Galaxy S23 Ultra 256GB, Kártyafüggetlen, 1 Év Garanciával
- Beszámítás! Sony PlayStation 5 825GB SSD digital konzol garanciával, hibátlan működéssel
- Bomba ár! Dell Latitude 7480 - i5-6GEN I 8GB I 256GB SSD I 14" FHD Touch I HDMI I Cam I W10 I Gari!
- ÁRGARANCIA! Épített KomPhone Ryzen 7 9700X 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- IKEA Format lámpák eladóak (Egyben kedvezménnyel vihető!)
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest