Novo

Forum kao aplikacija na telefonu

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

  • 29 odgovora
  • 8.359 pregleda

Najnovija ↓

VScrool bar kako radi 04.06.2008. u 06:57 · pre 224 meseca #1
Dobro jutro
Poceo sam pisati program tacnije test... koji se sadrzi od pitanja koji je napisan u label-u i option buttona koji daju tacan / netacan odgovor za "zaorkuziti"

eh posto ja imam vise pitanja a treba sve stati na jednu formu pokusao sam koristiti VScrool bar posto je on i namjenjen za to, mislim nisam siguran...

Eh kak' cu napraviti da on stvarno scrool-a .. negdje bi se sadrzaj trebao unjeti ja mislim pa da on moze scroolat
Pregledao sam par skripti nisam nista nasaoo

Tako molim vas za malo pomoci
Re: VScrool bar kako radi 04.06.2008. u 08:41 · pre 224 meseca #2
evo kako sam to ja radio:

1. stavis na formu jedan PictureBox (nazoves ga picContainer recimo) koji ce da ti zauzima celu povrsinu forme (iskljucis mu bordere)
2. u picContainer dodas jedan PictureBox (i nazoves ga recimo picHolder) koji ce da zauzima sirinu picContainer.ScaleWidth - vsScroll.Width
3. u picContainer dodas jedan VScrollBar (i nazoves ga recimo vsScroll)
4. u picHolder ubacis sve kontrole koje ti trebaju (visina picHoldera moze da bude veca od visine picContainer - u tom slucaju se onaj deo koji je veci od picContainer-a ne vidi
5. podesis vsScroll.Min = 0 i vsScroll.Max = picContainer.ScaleHeight - picHolder.Height
6. u vsScroll_onScroll i u vsScroll_onChange event handlerima pomeras picHolder u zavisnosti od vrednosti scroll bara: picHolder.Top = -vsScroll.Value
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: VScrool bar kako radi 04.06.2008. u 09:04 · pre 224 meseca #3
Evo i moja ideja:

Koristio sam dva frame-a (jedan u drugom). Pored njih VScroll bar i u zavisnosti od njegove vrijednosti odnosno polozaja klizaca pomjera frame2 gore - dole u frame1.

Primjer je u prilogu.
Potpis
SELECT * FROM หน่วยงานหลัก WHERE ยสันติ LIKE 'โดย%'
Re: VScrool bar kako radi 04.06.2008. u 10:08 · pre 224 meseca #4
Ovo je ova Aleksandrova varijanta samo sa jednim PictueBox-om ... inace i ja tako radim...
PictureBox-ovi su dobri za ove graficke stvari zato sto mogu da drze druge kontrole na sebi ...
Potpis
HomePage http://www.eurora3d.com
Re: VScrool bar kako radi 04.06.2008. u 10:13 · pre 224 meseca #5
@dava: izbegavaj da koristis Frame kontrole jer ukoliko ubacis xp style manifest u tvoj exe (tj podrska za xp stilove) onda ce ti option buttoni i checkboxovi biti zacrnjeni (dobices po jedan crni pravougaonik za svaki checkbox/optionbutton), a ako ti bas trebaju frejmovi onda na svaki frejm stavis picturebox kome iskljucis bordere (tako da se ne vidi da je tu) i na picturebox slazes kontrole...
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: VScrool bar kako radi 04.06.2008. u 10:47 · pre 224 meseca #6
Je li to neki bug ili oni promjene property back color. Ako je ovo drugo onda bi se moglo izkontrolisati da ne mijenjaju.

U svom primjeru sam predvidio da se Frame2 moze povecati koliko god treba, bez izmjene koda, tako da taj Frame2 se pomjera do donje ivice forme, a ne da ide do neba.

@Eurora3D Team probaj p1 podesiti da je 2x veci od forme i na nevidljivi dio staviti neku kontrolu. Zatim skrolovati, kod mene se ta kontrola ne vidi?
Potpis
SELECT * FROM หน่วยงานหลัก WHERE ยสันติ LIKE 'โดย%'
Re: VScrool bar kako radi 04.06.2008. u 11:12 · pre 224 meseca
izmenjeno 1 put, poslednji put Eurora3D Team 04.06.2008. u 11:22
  1. Eurora3D Team04.06.2008. u 11:22zapis iz teksta poruke
#7
Jeste ... napisao sam ga bukvalno za minut.
Nadji liniju i promenu sa
Code:

p1.Move 0, p1.Top, Me.Width - s1.Width - 100, p1.Height

Posto sam greskom ukucao Me.Height pa je PictureBox uvek bilo visine forme i donji deo se nije video
promenio sam zakaceni fajl
Potpis
HomePage http://www.eurora3d.com
Re: VScrool bar kako radi 04.06.2008. u 11:22 · pre 224 meseca #8
Krcko, rekao bih da ovaj spoljni Picture box nije neophodan, osim ako hoce da locira skrolujuci sadrzaj u jedan deo forme (pretpostavljam da je to ovo sto je Eurora 3D uradio, nisam gledao).

Inace, bila vec tema o ovome :)
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: VScrool bar kako radi 04.06.2008. u 11:30 · pre 224 meseca #9
Pa ovako kako sam ja napravio skrolovanje (sa jednim PictureBox-om) i ScrollBar-om je jednostavije al da smo stavili dva , jedan glavni i u njemu drugi (koji pretstavlja ovaj kod mene) i ScrollBar bilo bi nekako kompaktnije i manje bi imalo veze sa ostalom grafikom (npr scale units) al bi bilo i komplikovanije ...
Potpis
HomePage http://www.eurora3d.com
Re: VScrool bar kako radi 04.06.2008. u 14:10 · pre 224 meseca #10
Citat:
Shadowed: Krcko, rekao bih da ovaj spoljni Picture box nije neophodan, osim ako hoce da locira skrolujuci sadrzaj u jedan deo forme (pretpostavljam da je to ovo sto je Eurora 3D uradio, nisam gledao).


Nije neophodan ali ljepse je kad se skroluje jedan dio forme. Recimo neko zaglavlje, naslov ili tako nesto da ostane uvijek na vrhu forme, a da se donji sadrzaj skroluje.

Upravu ste za Frame, evo stavio sam picture.

Nego @connundrum jesi li nasao rijesenje?
Potpis
SELECT * FROM หน่วยงานหลัก WHERE ยสันติ LIKE 'โดย%'
Re: VScrool bar kako radi 04.06.2008. u 14:42 · pre 224 meseca #11
Ne razumem zasto se mucite. Pa svi veoma dobro znate da se to veoma lako i elegantno moze resiti preko MDI Forme. Klizaci se sami automatski pojavljuju. Zar ne?
Potpis
rgdrajko
Re: VScrool bar kako radi 04.06.2008. u 15:47 · pre 224 meseca #12
@rajko: MDI forma ima svojih nedostataka i ne treba je koristiti ako ti samo treba scrollbar na formi (MDI forma je za druge stvari...)

@shadowed: drugi picturebox (picContainer) je tu samo da bi kasnije bilo lakse "ograditi" taj deo koji se skroluje, jer iz licnog iskustva znam da se izgled forme tj raspored kontrola na njoj uvek menja :) (pa postoji mogucnost da se recimo iznad tog dela koji se skroluje - a koji je u ovom primeru cela forma - doda neki "header" picturebox koji ce da ima logo aplikacije i podatke o verziji i sl u sebi...)

@dava: to je bug sa frame kontrolama...
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: VScrool bar kako radi 04.06.2008. u 16:03 · pre 224 meseca #13
Dava, Krcko, upravo to i rekoh pod "osim ako..." :)
Rajko, verovatno zato sto ne bi dobio to sto mu treba :)
Naravno, postoji i ono resenje koje ne smem da pominjem, gde je ovo (za sucaj cele forme) podrzano po default-u :P
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: VScrool bar kako radi 05.06.2008. u 03:39 · pre 224 meseca #17
Ljudi, a sta kazete na ovo? Moze li se ovo iskoristiti bez da se koristi "jezik kojim se ne govori"? Mozda malo subclassinga i znoja i da radi k'o delphi :)

Code:

Private Declare Function ShowScrollBar Lib "user32" (ByVal hwnd As Long, ByVal wBar As Long, ByVal bShow As Long) As Long
Private Const SB_HORZ = 0
Private Const SB_VERT = 1
Private Const SB_BOTH = 3
Private Sub Form_Load()
    ShowScrollBar Me.hwnd, SB_BOTH, True
End Sub


Naravno, umesto me.hwnd, moze da se koristi hwnd bilo koje komponente koja ga ima. Samo jos nedostaje kod za kontrolisanje scroll barova, ali sigurno da nije preterano tesko.
Re: VScrool bar kako radi 05.06.2008. u 08:31 · pre 224 meseca #18
Ili ovako, ali to je opet skrolovanje citave forme.

Code:

Private Declare Function HideCaret Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ShowCaret Lib "user32" (ByVal hwnd As Long) As Long
'The HideCaret function hides the ugly blinking caret on the scroll bar
Private Sub Form_Load()
    VScroll1.Max = Picture1.Height - Form1.Height + 1000
    VScroll1.Min = 0
    VScroll1.SmallChange = 100
    VScroll1.LargeChange = 1000
End Sub
Private Sub Form_Unload(Cancel As Integer)
    ShowCaret VScroll1.hwnd
End Sub
Private Sub VScroll1_Change()
    Picture1.Top = -VScroll1.Value ' Change the frame's top
    HideCaret VScroll1.hwnd
End Sub
Private Sub VScroll1_GotFocus()
    HideCaret VScroll1.hwnd
End Sub
Private Sub VScroll1_LostFocus()
    HideCaret VScroll1.hwnd
End Sub
Private Sub VScroll1_Scroll()
    Picture1.Top = -VScroll1.Value ' Change the frame's top
    HideCaret VScroll1.hwnd
End Sub


Slicno kao kod jezika cije se ime ne spominje :)
Potpis
SELECT * FROM หน่วยงานหลัก WHERE ยสันติ LIKE 'โดย%'
Re: VScrool bar kako radi 05.06.2008. u 09:20 · pre 224 meseca #19
nije mnogo komplikovano, ali ja nisam hteo da navedem tu alternativu (subclassiranje) jer relativno jednostavno moze da se uradi i pomocu vb-ovih kotrnola (mada je resenje sa subclassingom mnogo flexibilnije, tj mogu da se ubace i flat scrollbarovi, i da se hvata WM_MOUSEWHEEL poruka tj da scrollbar reaguje na tockic misa...)
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: VScrool bar kako radi 05.06.2008. u 11:03 · pre 224 meseca #20
Htio sam to napraviti jos na pocetku ali me mrzilo, pa kad si vec spomenuo evo mozda nekom posluzi.

Potpis
SELECT * FROM หน่วยงานหลัก WHERE ยสันติ LIKE 'โดย%'
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme