Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

MSFlexGrid i Točkić Na Mišu ???

[es] :: Visual Basic 6 :: MSFlexGrid i Točkić Na Mišu ???

[ Pregleda: 4170 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ero S Ovoga Sveta

Član broj: 21509
Poruke: 173
*.teol.net



Profil

icon MSFlexGrid i Točkić Na Mišu ???19.03.2004. u 18:58 - pre 244 meseci
Zanima me da li je moguće da se MSFlexGrid skroluje pomoću točkića na mišu.

Ako jeste, molio bi da mi pomognete i kažete kako to da izvedem.....




_______________________________
Ero s ovoga Svijeta
 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
*.yubc.net

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: MSFlexGrid i Točkić Na Mišu ???19.03.2004. u 19:28 - pre 244 meseci
Moze, ali moras da napravis svoj objekat koji ce to handleuje. To se radi subclassingom. Pretrazi po googleu (keywords: VB "mouse wheel" subclassing). Sve u svemu, napravis jednu klasu koja okida event kad se skroluje tockicem i u formi na kojoj ti je grid handleujes taj event i setujes TopRow property grida.
 
Odgovor na temu

Ero S Ovoga Sveta

Član broj: 21509
Poruke: 173
*.teol.net



Profil

icon Re: MSFlexGrid i Točkić Na Mišu ???21.03.2004. u 05:05 - pre 244 meseci
Hvala na pokusaju pomoci, ali
posto nisam, bas profi u VB, molio bi ako moze neki konkretan link, a uz to i malo koda za pozivanje klase.

Da ne mislite da se nisam trudio, nasao sam nekih kodova za - mouse wheel subclassing, ali ne znam koji bi konkretno meni trebao.
 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
*.yubc.net

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: MSFlexGrid i Točkić Na Mišu ???21.03.2004. u 14:26 - pre 244 meseci
Citat:
Ero S Ovoga Sveta:
Da ne mislite da se nisam trudio, nasao sam nekih kodova za - mouse wheel subclassing, ali ne znam koji bi konkretno meni trebao.


Samo si trebao da probas da iskoristis neki kod koji si nasao. :)

Mislim da je ovaj kod ok. Ja sam svojevremeno ovo malo drugacije napravio (bitan je samo hwnd objekta, ne treba prosledjivati formu i kontrolu), ali i ovo bi trebalo da radi posao. Od ovog mozes da pravis klasu (bolja varijanta, dobijas reusable objekat), a mozes da koristis i ovako kako je. Ako pogledas kod sa ovog linka, videces da imas oznaceno mesto gde treba handleovati mouse wheel. Sve sto treba da uradis je da na tom mestu pozivas funkciju koja treba da radi ono sto ti zelis (ili da dizes neki event, ako pravis klasu). Ovde ti je bitan parametar Mouse_RollUp, koji je indikator da li se tockic vrti gore ili dole. Od ovog parametra zavisi kako ces handleovati event (da li skrolujes gore ili dole). Ako pravis klasu, Mouse_RollUp treba da bude parametar eventa.

Ako pravis klasu od ovoga, Mouse_Form i Mouse_Control treba da budu propertyji, treba da imas event MouseWheel event i metode Mouse_HookForm i Mouse_UnhookForm. Mouse_InBounds i Mouse_CheckForWheel mogu da budu privatne metode u klasi. Mouse_MessageProc MORA da se nalazi u nekom modulu.

Po meni subclassing je "plafon" programiranja u VBu. Dobio si instrukcije kako da napravis reusable objekat, probaj, pa ako zapnes negde pitaj. Ako ti se vise svidja resenje "na tacni", pogledaj fajl uz poruku. :)






Prikačeni fajlovi
 
Odgovor na temu

Ero S Ovoga Sveta

Član broj: 21509
Poruke: 173
*.teol.net



Profil

icon Re: MSFlexGrid i Točkić Na Mišu ???26.03.2004. u 06:22 - pre 244 meseci
Skino sam projekat koji si zakacio uz poruku, ali ima nekoliko mana. Npr.:

1. Kad dodjes do dna liste, znaci ne moze sa vise skrolovati nadole, ako jos koji put okrenes tockic nadole,sad, kad pokusas da skrolujes nagore on ne krece odma, nego kad odbroji onoliko koliko puta si okrenuo tockic nadole nakon sto je lista dosla do dna. (ustvari maksimalno je 10)
To bi se moglo rijesiti ako bi izbrojao koliko rovova stane u moj msfg. al to je relativno i glupo rjesenje.

2. Ako skrolujes sa tockicem, pa onda se npr. pomijeras sa strlicom na tastaturi, ako ponovo skrolujes sa tockicem, on ne nastavlja gdje je tastatura stala, nego dokle je doslo zadnje skrolovanje tockicom misa.
I ovo bi se moglo rijesiti al treca greska koju cu obrazloziti nije mi jasna.

3. Projekat koji si mi dao radi normalno sam za sebe, al kad sam kod ubacio u svoj program desava se nevjerovatna stvar!!!!
Modul sam ubacio u projekat. Za FormIzdaj kod Form_Load i Form_Activate je:
Code:

'------------------------------------------------------------
Private Sub Form_Load()
    lpFormObj = ObjPtr(Me)
SetProp FormIzdaj.hwnd, "PrevWndProc", SetWindowLong _
(FormIzdaj.hwnd, GWL_WNDPROC, AddressOf WndProc)
If GetSystemMetrics(SM_MOUSEWHEELPRESENT) Then
   Debug.Print "Yes Wheel"
Else
    Debug.Print "No Wheel"
End If
topRow = 1
End Sub
'------------------------------------------------------
Private Sub Form_Activate()
Data1.DatabaseName = App.Path & "\Magacin.mdb"
Data2.DatabaseName = App.Path & "\Magacin.mdb"
Data3.DatabaseName = App.Path & "\Otpremnice.mdb"
Data4.DatabaseName = App.Path & "\Artikli.mdb"
Data5.DatabaseName = App.Path & "\Datum.mdb"

ms2.ColWidth(0) = 1000
ms2.ColWidth(1) = 2500
ms2.ColWidth(2) = 1150
MS1.ColWidth(0) = 1000
MS1.ColWidth(1) = 2500
MS1.ColWidth(2) = 900

Dim ds As String

If Option2.Value = True Then
 dugStampaj.ToolTipText = "Proknjizi Otpremnicu"
 dugStampaj.Caption = "Proknjizi Otpremnicu"
Else
 dugStampaj.ToolTipText = "Proknjizi i Stampaj Otpremnicu"
 dugStampaj.Caption = "Stampaj"
End If

Data1.Refresh
ms2.TextMatrix(0, 0) = "Kataloski Br."
ms2.TextMatrix(0, 1) = "Naziv Artikla"
ms2.TextMatrix(0, 2) = "Izdata Kolicina"
MS1.TextMatrix(0, 0) = "Kataloski Br."
MS1.TextMatrix(0, 1) = "Naziv Artikla"

MS1.Sort = flexSortStringAscending
End Sub
'------------------------------------------------------------

Posle mnogo patnje pokrenuo sam Debug, pocevsi od "Private Sub Form_Load()"
pa onda F8,F8,F8........ dok ne dodje do "End SUb".
Kad ponovo pritisnem F8, automatski izlazi iz mog programa i gasi VB kao da je grom puko u kompjuter.
Ovo sam isprobao nekoliko puta i svaki put isto.
Ako je neko zainteresovan da mi pomogne, neka ostavi e-mail da mu posaljem kompletan program.
Prvenstveno se odnosi na mladenovicz
Zanma me dali postoji neki jednostavniji nacin i kod da znam kad se tockic okrece, a ja bi sebi namjestio sta da radi u tom slucaju???????????
 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
*.yubc.net

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: MSFlexGrid i Točkić Na Mišu ???26.03.2004. u 09:42 - pre 244 meseci
U pravu si, ima ova aplikacija mana, ali mouse wheel radi kako treba. Mislio sam da ces se snaci sa ovim ostalim.

1. i 2.

Code:

Public Sub ScrollDown()
    ' scroll down..
    If MSFlexGrid1.RowIsVisible(MSFlexGrid1.Rows - 1) Then Exit Sub
     MSFlexGrid1.topRow = MSFlexGrid1.topRow + 1
End Sub

Public Sub ScrollUp()
    ' scroll up..
    If MSFlexGrid1.topRow = 1 Then Exit Sub
    MSFlexGrid1.topRow = MSFlexGrid1.topRow - 1
End Sub


Kad skrolujes dole, ako se poslednji row vidi - nema skrolovanja. Isto tako, kad skrolujes gore ako je MSFlexGrid1.topRow = 1 - nema skrolovanja. Primeti da sam izbacio koriscenje topRow promenljive, tako da ce i ono sa strelicom raditi.

3) subclassing je malo za*eban za debagovanje. Desava se da ti "nestane" aplikacija prilikom debagovanja. Bitno je da ti se to ne desava kad ne debagujes. Zato je najjednostavnije od ovoga napraviti klasu i spakovati u DLL. Onda neces imati ovih problema. Ja sam napravio to pre nekog vremena i radi savrseno.
 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
*.yubc.net

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: MSFlexGrid i Točkić Na Mišu ???26.03.2004. u 09:48 - pre 244 meseci
Offtopic:
Nije mi bas najjasnije zasto imas onaj kod na Form_Activate. Taj kod ce ti se izvrsavati svaki put kad kliknes na neki drugi prozor, pa se vratis na taj tvoj.
 
Odgovor na temu

Ero S Ovoga Sveta

Član broj: 21509
Poruke: 173
*.teol.net



Profil

icon Re: MSFlexGrid i Točkić Na Mišu ???26.03.2004. u 22:56 - pre 244 meseci
1. Moj problem je u tome sto se isto desava i kad pokrenem program, a ne samo pri debug-ovanju. Znaci cim pokrenem program cuje se ono "BIP", kao msgbox-u, i automatski se moja aplikacija i VB gasi, bez ikakve poruke.

2. Kod za form_Aktivate sam stavio da bi mozda uspio da skontas dali on pravi probleme posto se on ucitava nakon Form_Load, a vec sam rekao da se ovo sve desi posle ucitavanja <Private Sub Form_Load()>, odnosno kad se zavrsi ovaj dogadjaj.

Evo zakacio sam dio programa uz poruku.
Prikačeni fajlovi
 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
62.108.109.*

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: MSFlexGrid i Točkić Na Mišu ???27.03.2004. u 12:22 - pre 244 meseci
Evo izmenjenog koda u attachmentu. Take a look, pa pitaj ako ti nesto nije jasno.

Btw, bice ti lakse da se snalazis u kodu ako ga budes nazubljivao (slobodno koristi Tab ) i ako kontrolama dajes neka opisna imena.

Prikačeni fajlovi
 
Odgovor na temu

[es] :: Visual Basic 6 :: MSFlexGrid i Točkić Na Mišu ???

[ Pregleda: 4170 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.