Keresés

Új hozzászólás Aktív témák

  • DerStauner
    senior tag

    Ja és még pár adalék a hsz-edhez. Jó dolog, hogy önképzed magad, ezért is szólok, hogy a winforms, meg úgy általában minden vastag kliens-es megoldás, mára kiment a divatból. Ahogy ezt már írtam, azért nem találasz a témához rendes tutorialokat, mert jó pár éve nem fejleszt winforms-ban senki, hacsak nem muszáj neki (mondjuk speciális perifériák kezelése miatt). Épp a zárójeles rész miatt meghalni soha nem fog a winforms (bár én akkor is inkább wpf-ben gondolkoznék így 2013-ban), de a supportja mára tényleg pusztán névleges.
    Ha tanulni akarsz, és bejön az MS vonal, és ebben szeretnél elhelyezkedni, akkor válts ASP.NET-re (webforms, mvc, webpages).

    Ugyanez a helyzet a VB.NET-tel. Válts C#-ra helyette.

    És hidd el vagyunk itt páran, akik csináltunk pár vastag klienses programot, én pl. 2009-ig.

    miben írnál meg egy asztali alkalmazást windows-ra?

  • DerStauner
    senior tag

    Sziasztok!

    Két kérdésem lenne:

    1. Csináltam egy egyedi combobox-ot. Minden jól működik, egyet kivéve: ha legördítem a combobox-ot, és úgy döntök, hogy nem választok ki semmit, hanem félrekattintok, akkor azt szeretném elérni, hogy tűnjön el a legördülő rész, úgy, mint a szokványos combobox-nál. Kép mellékelve. Próbáltam a lostfocus event-et felülírni, de nem jártam sikerrel. Nem is lép be a lostfocus-ba, csak akkor, miután már választottam egy item-et, bezárult a legördülő lista, és úgy lépek el.

    2. Ha a combobox legördülő része túllóg a saját container-e határán, akkor a maradék már nem látszik. Hiába írtam neki, hogy bringtofront. Kép mellékelve.

  • DerStauner
    senior tag

    nem, de ott van például az SQL CE vagy az SQLite. Az access oledb-je ráadásul 64 bites környezetben nem is működik, office is kell, hogy legyen a gépen. Bármilyen kicsi is a projekt SQL CE-t (vagy sqlite-ot) érdemes használni, az access-t pedig tökéletesen mellőzni kellene.

    "Az access oledb-je ráadásul 64 bites környezetben nem is működik"

    erre a projekt elején sajnos rá kellett jönnöm. de kiküszöbölhető volt.

    "office is kell, hogy legyen a gépen"

    ezt nem tudtam 100%-osan, nem elég csak a jet?

    már nem is emlékszem, melyikkel, vagy az sql ce-vel, vagy az sqlite-tal már annak idején kísérletezgettem, amikor a témát kóstolgattam.

    egyre emlékszem: rohadt lassú volt.

  • DerStauner
    senior tag

    hát igen, az access az egy külön világ. Mondjuk éppen ezért nem kellene access-t használni külső DB-ként. Arra az access-nél csak jobbak vannak.

    igen, ezt tudom, de erre a kis projektre nem érdemes egy normális db-t alkalmazni
    egy postgresql-t elég nehéz belenyomni egy setup-ba, úgy, hogy click-click-re tökéletesen felmenjen
    mert ha fel is megy, ezer gondja lehet, hogy miért nem kapcsolódik a program a szerverhez

  • DerStauner
    senior tag

    de pont erre használom a paramétereket

    pl. acces_cmb.parameters.addwithvalue("@tulaj1",txtulaj1.text)

    és akkor simán írhatom, hogy .... where tulaj1=@tulaj1

    ez mindenhol működött eddig. úgy látszik, az access egy külön dió?

    EDIT: ha felcserélem a knev és a hrsz paraméteradási sorokat, akkor meg a hrsz működik úgy, ahogy kell, a knev pedig nem.

    miért??

    hát ezért:

    Instead of SQLClient has OleDB (what you call Access) no named parameters.

    They are used in the order (sequence) they appear. Therefore you see often in sample code the question mark (?) used.

    inkább összefűzögetem őket.

    nem a legszebb, de hát ez van.

  • DerStauner
    senior tag

    ez olyan hosszú volt hogy el se olvastam, de látatlanban egy nagyon hülye tanács. Nem lehet, hogy a string-et nem tetted '-ok közé? Azaz where mező = valami helyett where mező = 'valami'-t kellene használni.
    Nagyon gagyi ötlet, de nem ez lehet a gond?

    de pont erre használom a paramétereket

    pl. acces_cmb.parameters.addwithvalue("@tulaj1",txtulaj1.text)

    és akkor simán írhatom, hogy .... where tulaj1=@tulaj1

    ez mindenhol működött eddig. úgy látszik, az access egy külön dió?

    EDIT: ha felcserélem a knev és a hrsz paraméteradási sorokat, akkor meg a hrsz működik úgy, ahogy kell, a knev pedig nem.

    miért??

  • DerStauner
    senior tag

    sziasztok!

    alant a kód:

    ConnectToDb(acces_conn)
    acces_cmd.Connection = acces_conn
    acces_cmd.Parameters.Clear()
    acces_cmd.Parameters.AddWithValue("@knev", frmkereses.inp_knev.szoveg.Replace("*", "%"))
    acces_cmd.Parameters.AddWithValue("@hrsz", frmkereses.inp_hrsz.szoveg.Replace("*", "%"))
    If frmkereses.inp_terulet.szoveg <> "" Then acces_cmd.Parameters.AddWithValue("@terulet", CInt(frmkereses.inp_terulet.szoveg))
    If frmkereses.tb_teruletig.szoveg <> "" Then acces_cmd.Parameters.AddWithValue("@teruletig", CInt(frmkereses.tb_teruletig.szoveg))
    If frmkereses.inp_erdo.szoveg <> "" Then acces_cmd.Parameters.AddWithValue("@erdoter", CInt(frmkereses.inp_erdo.szoveg))
    If frmkereses.tb_erdoig.szoveg <> "" Then acces_cmd.Parameters.AddWithValue("@erdoig", CInt(frmkereses.tb_erdoig.szoveg))
    acces_cmd.Parameters.AddWithValue("@kivett", frmkereses.cmb_kivett.selecteditem)
    acces_cmd.Parameters.AddWithValue("@jogallas", frmkereses.cmb_jogallas.selecteditem)
    acces_cmd.Parameters.AddWithValue("@tulaj1", frmkereses.inp_tulaj.szoveg)
    acces_cmd.Parameters.AddWithValue("@tulaj2", frmkereses.tb_tulaj2.szoveg)
    acces_cmd.Parameters.AddWithValue("@tulaj3", frmkereses.tb_tulaj3.szoveg)
    acces_cmd.Parameters.AddWithValue("@erdo", frmkereses.j_erdo.Checked)
    Dim selstring As String = ""
    acces_cmd.CommandText = "select * from fotabla where id>=0"
    If frmkereses.inp_knev.szoveg <> "" Then selstring = selstring & " and knev like @knev"
    If frmkereses.inp_hrsz.szoveg <> "" Then selstring = selstring & " and hrsz like @hrsz"
    If frmkereses.inp_terulet.szoveg <> "" And frmkereses.tb_teruletig.szoveg = "" Then selstring = selstring & " and terulet>=@terulet"
    If frmkereses.inp_terulet.szoveg = "" And frmkereses.tb_teruletig.szoveg <> "" Then selstring = selstring & " and terulet<=@teruletig"
    If frmkereses.inp_terulet.szoveg <> "" And frmkereses.tb_teruletig.szoveg <> "" Then selstring = selstring & " and terulet between @terulet and @teruletig"
    If frmkereses.inp_erdo.szoveg <> "" And frmkereses.tb_erdoig.szoveg = "" Then selstring = selstring & " and erdo>=@erdo"
    If frmkereses.inp_erdo.szoveg = "" And frmkereses.tb_erdoig.szoveg <> "" Then selstring = selstring & " and erdo<=@erdoig"
    If frmkereses.inp_erdo.szoveg <> "" And frmkereses.tb_erdoig.szoveg <> "" Then selstring = selstring & " and terulet between @erdo and @erdoig"
    acces_cmd.CommandText = acces_cmd.CommandText & selstring & " order by id"
    'acces_cmd.CommandText = "select * from fotabla where id>=0 and terulet>4000 order by id"
    'MsgBox(acces_cmd.CommandText)
    'DisplaySPInformation(acces_cmd)
    'lekérdezési tábla előkészítése
    acces_reader = acces_cmd.ExecuteReader

    Az a gondom vele, hogy amikor a lekérdezést végrehajtatom (csak a terület értéket adom meg), azt írja ki, hogy típuseltérési hiba a feltételkifejezésben.

    Az adatbázisban a terület mező egész, itt pedig a paraméter típusa is egész. Tehát mindennek jónak kellene lennie. Mégsem az. Miért??

    Adatbázisként acces-t használok (most kivételesen csak a projekt kedvééért - felesleges lenne a postgresql).

    a bolondját járatja velem az access. Vagy valamit nagyon benézek.

    csak a knev-re hajlandó működni a where feltétel

    még egy sima egyszerű stringre sem. Pedig a paraméterek értékei helyesek.

    pl van az adatbázisban egy sor, ahol a tulaj1=valaki

    ha csak ezt írom be a tulaj mezőbe, nem hoz ki semmit sem.

    Miért van ez???

  • DerStauner
    senior tag

    sziasztok!

    alant a kód:

    ConnectToDb(acces_conn)
    acces_cmd.Connection = acces_conn
    acces_cmd.Parameters.Clear()
    acces_cmd.Parameters.AddWithValue("@knev", frmkereses.inp_knev.szoveg.Replace("*", "%"))
    acces_cmd.Parameters.AddWithValue("@hrsz", frmkereses.inp_hrsz.szoveg.Replace("*", "%"))
    If frmkereses.inp_terulet.szoveg <> "" Then acces_cmd.Parameters.AddWithValue("@terulet", CInt(frmkereses.inp_terulet.szoveg))
    If frmkereses.tb_teruletig.szoveg <> "" Then acces_cmd.Parameters.AddWithValue("@teruletig", CInt(frmkereses.tb_teruletig.szoveg))
    If frmkereses.inp_erdo.szoveg <> "" Then acces_cmd.Parameters.AddWithValue("@erdoter", CInt(frmkereses.inp_erdo.szoveg))
    If frmkereses.tb_erdoig.szoveg <> "" Then acces_cmd.Parameters.AddWithValue("@erdoig", CInt(frmkereses.tb_erdoig.szoveg))
    acces_cmd.Parameters.AddWithValue("@kivett", frmkereses.cmb_kivett.selecteditem)
    acces_cmd.Parameters.AddWithValue("@jogallas", frmkereses.cmb_jogallas.selecteditem)
    acces_cmd.Parameters.AddWithValue("@tulaj1", frmkereses.inp_tulaj.szoveg)
    acces_cmd.Parameters.AddWithValue("@tulaj2", frmkereses.tb_tulaj2.szoveg)
    acces_cmd.Parameters.AddWithValue("@tulaj3", frmkereses.tb_tulaj3.szoveg)
    acces_cmd.Parameters.AddWithValue("@erdo", frmkereses.j_erdo.Checked)
    Dim selstring As String = ""
    acces_cmd.CommandText = "select * from fotabla where id>=0"
    If frmkereses.inp_knev.szoveg <> "" Then selstring = selstring & " and knev like @knev"
    If frmkereses.inp_hrsz.szoveg <> "" Then selstring = selstring & " and hrsz like @hrsz"
    If frmkereses.inp_terulet.szoveg <> "" And frmkereses.tb_teruletig.szoveg = "" Then selstring = selstring & " and terulet>=@terulet"
    If frmkereses.inp_terulet.szoveg = "" And frmkereses.tb_teruletig.szoveg <> "" Then selstring = selstring & " and terulet<=@teruletig"
    If frmkereses.inp_terulet.szoveg <> "" And frmkereses.tb_teruletig.szoveg <> "" Then selstring = selstring & " and terulet between @terulet and @teruletig"
    If frmkereses.inp_erdo.szoveg <> "" And frmkereses.tb_erdoig.szoveg = "" Then selstring = selstring & " and erdo>=@erdo"
    If frmkereses.inp_erdo.szoveg = "" And frmkereses.tb_erdoig.szoveg <> "" Then selstring = selstring & " and erdo<=@erdoig"
    If frmkereses.inp_erdo.szoveg <> "" And frmkereses.tb_erdoig.szoveg <> "" Then selstring = selstring & " and terulet between @erdo and @erdoig"
    acces_cmd.CommandText = acces_cmd.CommandText & selstring & " order by id"
    'acces_cmd.CommandText = "select * from fotabla where id>=0 and terulet>4000 order by id"
    'MsgBox(acces_cmd.CommandText)
    'DisplaySPInformation(acces_cmd)
    'lekérdezési tábla előkészítése
    acces_reader = acces_cmd.ExecuteReader

    Az a gondom vele, hogy amikor a lekérdezést végrehajtatom (csak a terület értéket adom meg), azt írja ki, hogy típuseltérési hiba a feltételkifejezésben.

    Az adatbázisban a terület mező egész, itt pedig a paraméter típusa is egész. Tehát mindennek jónak kellene lennie. Mégsem az. Miért??

    Adatbázisként acces-t használok (most kivételesen csak a projekt kedvééért - felesleges lenne a postgresql).

  • DerStauner
    senior tag

    Én már régóta .Net vonalon kizárólag C#-ozok. Makróról .Net-re áttérésre legjobb a VB.Net viszont rá fogsz jönni, hogy mostanra szinte senki nem használja a VB.Net-et, ergo tutorialokat, példákat, különösen az újabb technológiákhoz szinte lehetetlen hozzá találni.
    Nekem személyes kedvencem a VB.Net, és mind tudásban, mind sebességben egyenrangú a C#-al. Csak valahogy az élet így hozta, hogy mostanra a C# dominál.

    "tutorialokat, példákat, különösen az újabb technológiákhoz szinte lehetetlen hozzá találni."

    erre jó a sok ingyenes online converter

    én soha nem tudtam megbékélni a c# szintaxisával, máig is vb.net-tel nyomulok (anno vb6-tal kezdtem)

  • DerStauner
    senior tag

    helló!

    a social msdn-n eddig nem kaptam választ a kérdésemre, ezért itt is feltenném:

    hogyan tudok egy datagridview cellához egy picturebox-ot hozzáadni? nem imagecell-re van szükségem, hanem egy textbox cell-re, aminek a jobb sarkában van egy picturebox. és ami fontos, hogy mindig látható legyen, tehát edit mode-ban is. egy custom column-t szeretnék létre hozni. ez lenne az első lépés (picturebox hozzáadása a cell-hez). de a neten nem találok semmit. a microsoft host control-os példáját próbáltam, nem az kell nekem.

    tudjátok, minden control-nak van Controls tömbje, és akkor írhatom, hogy Controls.Add(picturebox). de úgy néz ki, hogy a cell-nek nincs.

  • DerStauner
    senior tag

    sziasztok!

    egyik ismerősömnek egyéni igényeket kielégítő programra volt szüksége, amellyel könnyen és gyorsan lehet a képernyőt lementeni. így alkottam meg a PrintScreen v1.1a nevű kis programot.

    itt letölthető (állítólag csak 10-szer)

    tesztelve xp32-n. vista 32-n nem volt alkalmam, bár nagy valószínűséggel működik, vista x64-en tuti nem működik.

    működési problémák csak azért lépnek fel, mert egyszerűen nem tudom, hogy hogyan kell a dll-eket és az ocx-eket 64 bites op-ken regisztrálni. 32 biteseken a regsvr32 erre tökéletes. és habár ezt a setup elvégzi, de 64 biten akkor is kiírja, hogy unregistered component, stb.

    és még egy dolog: számomra ismeretlen okokból ha a programot a setup-ban az összes felhasználónak telepítitek fel, akkor ha éltek az autostart lehetőségével a programban (ez direkt nem a setup-ban van szabályozva), akkor nem írja be a program a szükséges registry bejegyzést a regisztrációs adatbázisba. de ha csak saját magatoknak telepítitek, akkor működik.

    ja, az kimaradt, hogy az egésznek természetesen az a lényege, hogy elindítod a progit, leteszed tray-be, és akármikor F10-et nyomsz, csinál egy print screen-t, és elmenti oda, amilyen útvonalat megadtál neki. és lehet időzíteni is az egészet (pl minden 10 percben csináljon egy képet, vagy csak 10 perc múlva).

  • DerStauner
    senior tag

    sziasztok!

    egyik ismerősömnek egyéni igényeket kielégítő programra volt szüksége, amellyel könnyen és gyorsan lehet a képernyőt lementeni. így alkottam meg a PrintScreen v1.1a nevű kis programot.

    itt letölthető (állítólag csak 10-szer)

    tesztelve xp32-n. vista 32-n nem volt alkalmam, bár nagy valószínűséggel működik, vista x64-en tuti nem működik.

    működési problémák csak azért lépnek fel, mert egyszerűen nem tudom, hogy hogyan kell a dll-eket és az ocx-eket 64 bites op-ken regisztrálni. 32 biteseken a regsvr32 erre tökéletes. és habár ezt a setup elvégzi, de 64 biten akkor is kiírja, hogy unregistered component, stb.

    és még egy dolog: számomra ismeretlen okokból ha a programot a setup-ban az összes felhasználónak telepítitek fel, akkor ha éltek az autostart lehetőségével a programban (ez direkt nem a setup-ban van szabályozva), akkor nem írja be a program a szükséges registry bejegyzést a regisztrációs adatbázisba. de ha csak saját magatoknak telepítitek, akkor működik.

  • DerStauner
    senior tag

    Nem hozzáértőként szeretném megkérdezni, hogy lehet-e VB-ben olyan programot írni, ami egy beírt szöveg alapján emulál billentyűzet leütéseket bármilyen programban?

    Gondolok arra, hogy egy rendkívül nehézkesen kezelhető adatbáziskezelő programba automatikusan beírná azokat az adatokat (ehhez szükség van TAB és ENTER leütésekre is), amiket én megadok a programnak. A billentyűzet leütések szekvenciáját meghatároznám VB-ben. Lehet, hogy hülye kérdés, programozni nem tudok, de gyorsan tanulok, köszi.

    használd a SendKey-t

    többek között itt is körülnézhetsz.

    ennek persze előfeltétele, hogy az adatbázist kezelő alkalmazás legyen az aktív

Új hozzászólás Aktív témák