Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 41 odgovor
  • 9.055 pregleda

Najnovija ↓

Image map ili grafički buttoni u VB2005? 17.05.2007. u 13:01 · pre 236 meseci #1
Pišem neku jednostavnu proof-of-concept applikaciju za PocketPC na VB2005, pa sam naišao na jedan problem.

Naime, zbog pojednostavljivanja dizajna ideja mi je da na formu nalepim PictureBox koji bi bio iste veličine kao forma, a na kome su već nacrtani svi buttoni, i da nakon toga nekako mapiram buttone na toj slici kako bi prilikom korišćenja aplikacije klikom na "button" na slici korisnik mogao dobiti i neki odgovarajući event.

Da li neko možda ima ideju kako ovo rešiti?

Re: Image map ili grafički buttoni u VB2005? 17.05.2007. u 13:19 · pre 236 meseci #2
Pa mapiranje je sigurno najgora varijanta, jer se onda moras pomuciti oko interakcije (stanja dugmadni na fokus, mouseover, mousepressed itd.) sto koriscenjem command buttona radis bez problema, a bilo kakva promena pozicije ili velicine nekog od dugmadi je puno fleksibilnija na ovaj nacin. Button kontrola u VB 2005 ima BackgroundImage svojstvo koje potpuno odgovara primeni koju zelis.

Inace za VB 2005 bolje da pitas na .NET forumu, mada ce ti i tamo ovo potvrditi.

Pozdrav!
Re: Image map ili grafički buttoni u VB2005? 17.05.2007. u 13:32 · pre 236 meseci #3

Hmm.. Ja nisam video da kod mene ima u Button kontroli ima BackgroundImage property, možda zbog toga što sam za target device odabrao PocketPC/Windows CE, on čak ni ne podržava sve boje buttona kako treba... Attachovao sam i screenshot čisto da vidiš...

Imaš li neku ideju kako uraditi image mapping, nema veze što je komplikovano, ionako mi treba to kao neki prototip samo, pravim aplikaciju sa user interface-om čisto da se vidi kako to izgleda, ionako neću praviti ništa drugo osim toga.

Pozdrav,
Danko
Re: Image map ili grafički buttoni u VB2005? 17.05.2007. u 13:44 · pre 236 meseci #4
Ne znam koju verziju koristis - mozda ima sa tim veze, ili sa ovim sto navodis (Target Device), evo ti kako izgleda property screen za projekat tipa Windows Application i button koji se tamo koristi, ovaj tip projekta koji navodis nisam probao jer nemam verziju koja omogucava tvoj tip projekta.

Inace, imagemapping sam radio svojevremeno za Java aplete, znaci bitno je samo koji dogadjaj hoces da iskoristis, npr. ako koristis MouseDown onda treba da u zavisnosti od koordinata misa aktiviras odgovarajucu proceduru, a za interakciju tipa npr. mouseover moras i ucitavati odgovarajucu sliku u odgovarajuci Rectangle - nadam se da si na to mislio.
Re: Image map ili grafički buttoni u VB2005? 17.05.2007. u 13:48 · pre 236 meseci #5
Definitivno je do verzije... Jer u ovoj verziji za PocketPC gomila kontrola i funkcija mi nije dostupna... Imaš li neki hint za imagemap?

Meni je ideja bila da ako ne postoji neki jednostavnij način, da napravim dve bitmape, jedna koju će korisnik da vidi, a druga u pozadini koja bi imala samo buttone iscrtane i to u različitim bojama, i onda da kada korisnik klikne, ja iščitam koordinate i koje boje je pixel na donjoj bitmapi, i da na osnovu toga pokrenem neki event...

Re: Image map ili grafički buttoni u VB2005? 17.05.2007. u 14:06 · pre 236 meseci #8
Da probas sa "System.Drawing.Bitmap.GetPixel((ByVal x As Integer, ByVal y As Integer) As System.Drawing.Color" na bitmapi u pozadini i za odredjene koordinate misa.
Re: Image map ili grafički buttoni u VB2005? 17.05.2007. u 14:09 · pre 236 meseci #9
Ako su ti virtuelni tasteri jednaki i na jednakom rastojanju, nije veliki problem.
Recimo, ako su dimenzije 20x10px i 3px razmak i neka su koordinate click-a X i Y. Redni broj tastera s leva dobijas tako sto uzmes X \ 23 a odozgo Y \ 13. U sustini, izdelio si celu sliku na bautton-e sa praznim prostorom levo i iznad njega. Zatim, da bi znao da li je kliknuto na button ili prazan prostor, ides X Mod 23 i Y Mod 13. Ako je ostatak veci ili jednak 3, kliknuto je na taj taster, ako je 0,1 ili 2 onda na prazan prostor levo ili iznad njega.

Ukoliko ne ispunjavaju uslove sa pocetka, onda je mozda bolje da imas jedan niz koordinata koje pripadaju tasterima i koristis select case. Onda mozes imati i totalno nepravilan raspored a ako dodas i Z order mogu i da se preklapaju :)
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Image map ili grafički buttoni u VB2005? 17.05.2007. u 14:14 · pre 236 meseci #10
Ventura, pogledaj ovaj MSDN article

How to Create a Microsoft .NET Compact Framework-based Image Button
http://msdn2.microsoft.com/en-us/library/aa446518.aspx
Potpis
Idle mind is the devils playground, in my case it turned out to be an amusement park.

Sustina problema ove zemlje:
Legeonar_: Sto pre treba da shvatite da je EU propast i da se tamo mora raditi,a ne samo biti zaposlen.
http://www.elitemadzone.org/p1864861

Nobody Remains Virgin, Life Fucks Everyone
Re: Image map ili grafički buttoni u VB2005? 17.05.2007. u 14:35 · pre 236 meseci #11
Kad koristim getpixel puca mi aplikacija, kaze "unexpected error", a kompajlira se sasvim normalno..

Da li sam dobro napisao ovo?

Code:

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Dim bitmap As New Bitmap("\Storage Card\pozadina.bmp")
        Dim returnValue As Color

        returnValue = Bitmap.GetPixel(50, 50)

        MsgBox(returnValue)

    End Sub



Samo sam hteo da probam da li ce mi vratiti boju pixela, pa da posle dogradim na kordinate kursora, ali ne prolazi mi ni ovo...
Re: Image map ili grafički buttoni u VB2005? 17.05.2007. u 15:17 · pre 236 meseci #12
Pa ja sam shvatio das vec imas neki PictureBox, ali ako ides na ucitavanje iz fajla da li si probao Shared (staticku za nonVB usere) metodu FromFile(), koja ti vraca Image objekat?

I naravno, gde "puca" aplikacija?
Re: Image map ili grafički buttoni u VB2005? 17.05.2007. u 15:34 · pre 236 meseci #13
Odustao sam od čitanja boje pixela, jer ni to nije podržano, pa sad idem samo na čitanje koordinata, ali ne mogu da koristim GetCursorPos is user32.dll, jer user32.dll ne postoji :)

Re: Image map ili grafički buttoni u VB2005? 17.05.2007. u 15:38 · pre 236 meseci #14
Pa zar nema nijedan Event koji ti vraca koordinate misa, tj. koji tacno klik zelis da obradis (na koju kontrolu, objekt) ?
Re: Image map ili grafički buttoni u VB2005? 17.05.2007. u 15:40 · pre 236 meseci #15
Nema... isprobao sam 3-4 razlicita metoda i nijedan ne radi na WinCE...

Poštp mi je PictureBox preko celog forma, stavio sam da na event PictureBox.Click on pokuša da pročita koordinate miša, sračuna koji je to button i pokrene event.. E sad, pročutati koordinate je malo veći problem...

Re: Image map ili grafički buttoni u VB2005? 17.05.2007. u 15:51 · pre 236 meseci #16
Pa argument ti je objekt MouseEventArgs, tako da ti je X i Y: e.X i e.Y tj.

Code:

Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
        Dim argClass As MouseEventArgs

        argClass = e
        MsgBox("Koordinate su: " & argClass.X.ToString & ", " & argClass.Y.ToString)

End Sub
Re: Image map ili grafički buttoni u VB2005? 17.05.2007. u 16:04 · pre 236 meseci #17
Ma jok.. Puca i to... Kaže:

Code:

Error
DeviceApplication2.exe
InvalidCastException


a kada recimo na XP-u pokrenem ovaj isti program, normalno mi vraća koordinate kursora, kao i svi prethodni metodi koje sam probavao a koji ne rade na WinCE
Re: Image map ili grafički buttoni u VB2005? 17.05.2007. u 16:10 · pre 236 meseci #18
Error
DeviceApplication2.exe
InvalidCastException

at DeviceApplication1.Form1.Form1_Click()
at System.Windows.Forms.Control.OnClick()
at System.Windows.Forms.Control.WnProc()
at System.Windows.Forms.Control._InternalWnProc()
at Microsoft.AGL.Forms.EVL.EnterMainLoop()
at System.Windows.Forms.Application.Run()
at DeviceApplication1.Form1.Main()
Re: Image map ili grafički buttoni u VB2005? 17.05.2007. u 16:14 · pre 236 meseci #20
Jooooj koji horor!

A ja ti pripremio VB kod za to:
Code:

Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
        Dim argClass As System.Windows.Forms.MouseEventArgs
        Dim pixelColor As System.Drawing.Color

        argClass = e

        If Not PictureBox1.Image Is Nothing Then
            pixelColor = New Bitmap(PictureBox1.Image).GetPixel(argClass.X, argClass.Y)
            MsgBox("Boja je : " & pixelColor.ToString)
        End If

End Sub
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme