Hirdetés
- AMD vs. INTEL vs. NVIDIA
- Először kombinálja a Full HD-t az 1000 Hz-cel egy monitor
- Fejhallgató erősítő és DAC topik
- AMD Navi Radeon™ RX 9xxx sorozat
- Projektor topic
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Speciális kiadású AMD-s alaplapot villantott az ASUS a 20 éves ROG-jubileumra
- Apple MacBook
- AMD FX
- Milyen ÚJ notebookot vegyek?
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
Victorius
tag
-
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
Szerintem bizttos nem run-nal kell. Inkább valami load, meg show rémlik, de majd utánanézek.
-
Victorius
tag
A Common dialogue vezérlővel.
Alapból nem ajánlja fel a vezérlők között, külön fel kell vetetni közéjük.
A leírása megtalálható az ajánlottirodalomban (ld. fentebb). -
Victorius
tag
Hali
Az lenne a kérdésem. hogyan lehet VB-ben egy szöveges változóban tárolt számot áttenni számváltozóba úgy, hogy ha a szöveges változóban nem szám van, akkor ne fagyjon meg a progi, hanem mondjuk egy harmadik változóba eltárolja hogy a szöveges változó hanyadik karaktere nem számjegy
remélem érthető voltam, köszi a választ
T_beePróbáltad már a VAL függvényt?
számváltozó=VAL(füzér)
Azt hiszem, tud oktálist és hexadecimálist is értelmezni. Úgy tudom, megáll az első jegynél, ami nem szám. Ha ennél összetettebb dolog kell (mint mondjuk amit leírtál), akkor azt magadnak kell ''megprogramoznod''. -
Victorius
tag
Hmmm... köszi a segítséget!
De...
És pl 60 és 150 közé eső páros-páratlan véletlenszám?
És az igazán jó az lenne, ha... Min és Max értéket bármikor változtathassam...
Pl beviteli mező Min és beviteli mező Max, és erre a kettő közé generáljon véletlenszámot...
Ahol a min és max között nincsen kapcsolat... pl 13 és 100 vagy akármi!
(Rnd*Min)/Max vagy valami ilyesmi...
Ja... Caption működött végül így
UserForm1.Label.Caption=Cells(1,1)
Cells(1,1)-et az aktív worksheetből szedi...
Mit szól ehhez?
Veletlenszam=min+int((max-min)*rnd(1))
Lehet, hogy nem teljesen ''VB-kompatitbilis'' ez a formátum, de VB-ben még nem foglalkoztam véletlenszámokkal. Az alapelvet kell nézni...
A páros/páratlanról majd délután írok. Most megyek ebédelni (végre)!
-
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
Bizony, igazad van. Valójában vártam is a kérdést.
Eddig nem volt rá időm, de nemsoká beszerzek pár Delphi-s könyvet is (ere meg nem volt pénzem).
A igazi válasz az, hogy a Wordhöz szeretnék írni egy alkalmazást, ahhoz meg ez a legegyszerűbb módszer (és a legolcsóbb is). -
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 (vagyok
ehhez 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
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- AMD vs. INTEL vs. NVIDIA
- Samsung kuponkunyeráló
- Először kombinálja a Full HD-t az 1000 Hz-cel egy monitor
- Fejhallgató erősítő és DAC topik
- AMD Navi Radeon™ RX 9xxx sorozat
- Samsung Galaxy S26 Ultra - fontossági sorrend
- Samsung Galaxy A52s 5G - jó S-tehetség
- Projektor topic
- Autós topik
- Vivo X200 Pro - a kétszázát!
- További aktív témák...
- 24 magos AMD Threadripper alapú munkára kiváló félgép, 128GB RAM-mal
- HP ZBook Fury 15 G7 i7-10850H 32GB 512GB SSD Quadro T2000 4GB FHD HUN bill, szép állapotban eladó
- Eladó MacBook Pro 16,1 2019 CTO
- új 0 km es garanciás lenovo loq rtx 5050 8gb
- Eladó teljesen újszerű karcmentes Samsung Galaxy Watch Ultra
- Bomba ár! Fujitsu LifeBook U904 - i5-4G I 10GB I 500GB I 14" QHD+ I Cam I W10 I Gari!
- AKCIÓ! Felsőkategóriás Gamer PC-Számítógép! R7 9850X3D / RTX 5080 16GB / 32GB DDR5 / 2TB Nvme!
- MiniITX GAMING PC! Ryzen 7700 / RTX 5070 / B850I / 32GB DDR5 / 2TB NVMe / 750w Gold! BeszámítOK
- LG UltraGear 27GR75Q-B IPS Monitor! 2560x1440 / 165Hz / 1ms / FreeSync / G-Sync
- Keresünk S24/S24+/24 Ultra/S24 FE
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

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.




.


