339
Visual Basic Programozás, segítsetek nekem
  • SaintSavin
    #139
    pl.: www.kiskapu.hu
  • gordonmail
    #138
    hol lehet programíráshoz könyvet kapni, ami jó is? [email protected] kérlek titeket, kűldjetek mailt. Én is meg szeretnék tanúlni erősebben írni.
  • zegner
    #137
    jah meg formázni szeretnék programból de erre sem találtam semmit
  • zegner
    #136
    vki megmondaná hogy hogy lehet automatikus indítással indítani a progimat. tehát ugy h nem én másolom bele az indítópultba. ugy hallottam hogy van erre vmi parancs csak nem találtam.
    pls help
  • rushman
    #135
    Szerintem egy sorrendet érdemes felépíteni a tanulás menetében (főleg VB-ben). Elsőként érdemes általánosságban tanuli a programozási technológiáról (Pszeudokód), majd ezután a VB terminológiájáról, folyamatairól stb. De feleslegesen beszélek, vedd meg a könyvet, tudomásom szerint általában kapható (van raktáron), rendkívül egyértelműen (gyakorlatiasan) magyaráz, és teljesen a kezdőtől egy erős középfokig (tehát egy önálló többablakos alkalmazás elkészítéséig) megtanít. Véleményem szerint nincs jobb magyar nyelven megjelent könyv e témában.

    kérdésedre válaszolva: csakis érdeklődés kérdése 2-3 év alatt teljesen elsajátítható ez a szenzációsan egyszerű felépítésű nyelv. Tehát életkorod tudta nélkül a válaszom IGEN!
  • milyenferi
    #134
    Kössz a segítséget. Úgy érzem, a könyvvel kell kezdenem. Lehet, hogy kicsit megöregedtem, de megrettentem salyát sötétségemtől! Érdemes még elkezdenem?
  • rushman
    #133
    VB6 Kék könyv, a legjobb magyar nyelvű kezdőtől a haladóig.
  • zegner
    #132
    akkor próbálkozz vmi ilyesmivel. azért nem tudtad a focus-t birizgálni mert te a kilépésre programoztad az egészet és miután kilép már nem nagyon fókuszál semmire ezért gondoltam h ha nincs hiba akkor lépsz ki.


    Dim hiba As Boolean


    Private Sub cikk_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    hiba = False
    wcikk = cikk.Value
    If cikk = 0 Then
    ElseIf cikk < 1000000000 Then
    hiba = True
    ElseIf cikk > 9999999999# And cikk < 1000000000000# Then
    hiba = True
    ElseIf cikk > 9999999999999# Then
    hiba = True
    End If
    End Sub


    Private Sub CommandButton1_Click()
    If hiba = True Then
    MsgBox ("Ez nem cikkszám")
    cikk.SetFocus
    cikk = ""
    Else
    End
    End If
    End Sub


    szerintem
  • milyenferi
    #131
    Kossz a segítséget még elmélázom az értelmén de ..
    EXCEL-ben szerkesztettem egy formot több textbox-szal. Ez az első textbox-sza, de nem tudom a hiba esetén újra bekérni.Próbáltam a fokuszt visszaállítani nem sok sikerrel.Ha a bekért szám 10 jegyű akkor cikkszám és jó, ha 13 jegyü akkor vonalkód és az is jó. Itt az ettől eltérő beírást szűrném.
    Még nem a tutit megoldást keresem, elég ha valami megközelítőleg azt csinálja amit én akartam tőle.
    (Nincs egy jó könyvem ami kezdőket is eligazítana, így csak vaktában próbálkozok. Vagy esetleg egy használható tanfolyam? Ha van javaslatotok ....)
  • zegner
    #130
    nemtom h jól értettem-e mert a feltételeid 1másnak ellent mondanak van tul-képpen csak a 0-át fogadod el

    én inkább 1 inputbox-al és command -gombal csinálnám meg persze ciklussal de nemtom h jól értettelek e

    az csak ennyi:

    Private Sub CommandButton1_Click()
    Do Until cikk = 0
    cikk = InputBox("ird be a cikkszámot", "input")
    Loop
    End
    End Sub

    csak azért hogy már én is segítsek vkinek
  • milyenferi
    #129
    Kezdőként én még csak az EXCEL-t szeretném egy kicsit megpatkolni.Csináltam egy formot, aminek a cikk textbox-ába kértem be adatot, az ellenőrzés után, ha nem megfelelő az érték szeretném kinullázni a változót és ismételten bekérni de nem tudok visszalépni.

    Private Sub Cikk_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    wcikk = Cikk.Value
    If Cikk = 0 Then
    ElseIf Cikk < 1000000000 Then
    MsgBox "Ez nem cikkszám"
    ElseIf Cikk > 9999999999# And Cikk < 1000000000000# Then
    MsgBox "Ez nem cikkszám"
    ElseIf Cikk > 9999999999999# Then
    MsgBox "Ez nem cikkszám"
    End If
  • zegner
    #128
    hi! nem régóta csinálom ezt a vb-t kb 1.5 éve de csak sulis szinten. azt szeretném kérdezni hogy meg lehet e oldani valahogy hogy ha belépek 1 könyvtárba akkor elindul a progim (vagy már fut az indítópultból és figyel) és akkor kér 1 jeslzót és ha ezt beirtam csak akkor mutatja meg a könyvtár tartalmát.

    másik.
    lehet-e a windows felhasználónak jelszót létrehozni saját prg-ból a vezérlőpult nélkül/felhasználók nélkül a rendszer win-xp lenne.
  • SaintSavin
    #127
    Van valakinek valami ötlete, hogyan lehetne egy progit valami seriallal levédeni? (Olyan módon mint a nagyoknál.)
    Arra gondolok, hogy milyen elvek szerint működik, ami alapján már lehetne programozni.
  • rushman
    #126
    vb6 runtime library
  • Palinko
    #125
    ma átküldtem egyik haveromnak,és nem ment nála a prg.,mert valami MSWINSCK.OCX kellett neki. hogy oldahatom meg ezt a problémát?
  • Palinko
    #124
    nagyon szépen köszönöm!!!!!!!!!
    nűxik :D
  • Palinko
    #123
    köszi,mindjárt kipróbálom :)
  • Emmegki
    #122
    Raksz egy winsock és egy textbox vezérlőt a formra és:

    Private Sub Form_Load()
    Text1 = Winsock1.LocalIP
    End Sub
  • Palinko
    #121
    a 6.0-ás vb-t. úgy képzeltem,hogy pl. te elindítod ezt a programod,és rámész,hogy ip megtekintése,és akkor kiírja egy texy boxba,hogy a te ip-d 80.12......
  • stormnet
    #120
    a saját ípécíme kell ? akkor már csak azt mondd meg hogy a vb melyik verzióját használod
  • stormnet
    #119
    nemértem a lényeget... kinek a minek az ípéje kell ?
  • Palinko
    #118
    szeretnék egy olyan progit csinálni,hogy mikor rámegy egy gombra,kiírja a progi használójának képernyőjére a csatlakoztatott internetnek az IP címét :) hát ez most hosszú,meg furcsa,de mind1,remélem értitek a lényeget :) szóval a code kellene :)
  • stormnet
    #117
    hát inis asztmondom hogy vb rúlz, de vb 2005 (vagy sima vb .net)
  • rushman
    #116
    hát ezzel azért páran vitatkoznának, de én úgy vagyok vele, hogy százszor inkább nyúlok a vb-hez egy egyszerűbb alkalmazás készítésekor, mint mondjuk java-hoz.
  • stormnet
    #115
    mert régi, és utálom benne az overflovokat meg a tobbi korlátozását...
  • rushman
    #114
    jah, és miért?
  • stormnet
    #113
    a form_resize ben a windowstate lesz minimized ha minimizálják stb.
  • stormnet
    #112
    sztem a vb nem .netes verzióit már elkéne felejtni...
  • stormnet
    #111
    form_resizet használd arra is
  • SaintSavin
    #110
    Másik probléma amibe folyton beleütközök, az annak a figyelése mikor van a form a tálcára csukva és maximális méreten. Ugyanis ilyenkor pl. a form magassági méretét nem lehet piszkálni, de azt hiszem semmi magasságit nem enged. (minimumnál) Viszont a resize eseménybe meg állítgatnám ezeket.
    Arra gondoltam, hogy, ha tudnám mikor van pl. a tálcán a progi, akkor megirhatnám a resizeba, hogy tedd ezt vagy azt, kivéve, ha nincs ott. Most az On Erroe Resume Next sorral kompenzálom ezt a dolgot, de talán van jobb megoldás.
  • SaintSavin
    #109
    Rövidre zártam a kínlódást. :) Sajnos nem sikerült az elképzeléseim szerint megvalósítani a dolgot. Így egész egyszerűen kivetten a karakterek figyelését a szövegdobozban, és csak az elött vizsgálom meg, mielött műveletet véégeznék vele. Így van rendes control+c meg control+v.
  • rushman
    #108
    az egér jobb klikk és paste, még mindig enged karaktereket. Lehet, hogy jobban járnék, ha csak egyszerűen a szövegdoboz tartalmát ellenőrizném a művelet elött

    a text.change esemény alkalmas rá, ott szintén as isNumeric() függvénnyel letilthatod a szöveg beírását. Viszont jobban javaslom a már említett Clipboard objektum ellenőrzését mégpedig a keypress eseményben. Tehát akár egy felh függvényben is jól néz ki a dolog:

    function vagolapSzamE() as boolean

    dim var
    var = clipboard.gettext
    if isnumeric(var) then
    vagolapSzamE = true
    end if

    end function

    így csak meg kell hívni a keypress eseményben: If vagolapSzamE = True then és már illeszthető is be a szövegmezőbe

  • SaintSavin
    #107
    Most látom, a két változó (a és b) felesleges, csak a nyomonkövetéshez kellett. :))
  • SaintSavin
    #106
    Köszi. Így sikerült, kiiktatnom a betük bekopizását, de csak a ctrl+v műveletre, az egér jobb klikk és paste, még mindig enged karaktereket. Lehet, hogy jobban járnék, ha csak egyszerűen a szövegdoboz tartalmát ellenőrizném a művelet elött, vagy van valami mődszer, hogy a jobbklikkes copyt is felügyelni tudjam?
    Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
    a = Clipboard.GetText
    b = IsNumeric(Clipboard.GetText)
    If KeyCode = vbKeyControl Then
    If Not (IsNumeric(Clipboard.GetText)) Then
    Clipboard.Clear
    End If
    End If
    End Sub
  • rushman
    #105
    a clipboard objektumból lehet kinyerni (Clipboard.getText), azt viszont hogy hogyan, azt én sem tudom, ilyet még nem csináltam. Talán a bill. kombinációt kellene figyelni ugyanazon keypress eseményben, bár ez így eléggé zavaros kódot eredményezne...
    Ha az isNumeric(clipboard.getText) false értéket ad vissza, akkor a vágólap tartalma nem szám (pl. "abc1122" is false értéket ad, mivel tartalmaz legalább egy nem numerikus karaktert), szerintem ez jó megoldás lenne, ebben az esetben figyelmen kívül kell hagyni a beillesztést.
  • SaintSavin
    #104
    Kipróbáltam, és nem igazán az, mit amit szeretnék.
    A copy-paste működik, de csak az egér jobb klikkes menünél. De ez az én verziómnál is működött. Én azt szeretném, ha a ctrl+c, x és v működne, úgy, hogy csak számokat enged beírni. Tehát még ezeket a billentyűkombinációkat is kéne engedélyezni, de nem ismerem, a kódjukat, amit figyelni kéne.
    A másik probléma ezzel, hogy, engedi, hogy betüt kopizzon a szövegdobozba. Ilyenkor miért nem nullázza ki a betüket? Ilyenkor külön kell figyelnem a bennt lévő karaktereket? Vagy van valami egyszerübb módja ennek?
  • SaintSavin
    #103
    köszi
  • rushman
    #102
    így működik a copypaste:

    Private Sub Text10_KeyPress(KeyAscii As Integer)
    If KeyAscii = 8 Then Exit Sub

    If KeyAscii < 48 Or KeyAscii > 57 Then
    KeyAscii = 0
    End If

    End Sub
  • rushman
    #101
    van egy halom ingyenes installer program, keress utána. Ha meg csinálni akarsz, akkor tanulmányozd a fáljkezelést és a registry elérést vb-ben.
  • SaintSavin
    #100
    Köszönöm a segítséget.
    Közben felvetődött bennem még egy kérdés (nyugi van belőle bőven)
    Van egy szövegdobozom, amibe azt szeretném, hogy csak számokat írhasson be a felhasználó.
    Addig oké, hogy ezt teszem:

    Private Sub Text10_KeyPress(KeyAscii As Integer)
    If (KeyAscii < Asc("0") Or KeyAscii > Asc("9")) And KeyAscii <> 8 Then
    KeyAscii = 0
    End If
    End Sub

    De szeretném, hogy a copy-paste is működhessen, tehát a ctrl+c és a ctrl+v.