[ zeljan znanja @ 05.04.2008. 23:27 ] @

Prije svega pozdrav za sve,

Imam jedan problem pa cu ga objasniti u par koraka.
Pravim kviz u Visual Basicu 6.0 koji se sastoji od nekih 300 pitanja iz raznih oblasti, i sve radi kako treba ali nemogu
da napravim da kada neko ima nekoliko bodova, i da kada pogrijesi i izbaci mu prozor da unese svoje ime jer je usao
medju 10 najboljih i on to uradi da u sledeci prozor koji se otvori sa labelima da tu pise ime koje je on unio u prethodnu
formu.
Nadam se da ste uspjeli razumiti u cemu je problem.
Molim vas da mi pomognete sto je prije moguce.

Hvala svima unaprijed.
[ Eurora3D Team @ 06.04.2008. 01:32 ] @
Pa i nisi bas dobro objasnio ...
Pretpostavimo da je problem u tome sto kad ocitas tekst iz prve forme i kad ona nestane nestanu i podatci koje je korisnik upisao (zato sto su lokalni na nivou te forme).
Ako je ovo problem onda se to radi ovako (jedan od nacina)
Napravis novi VB Modul fajl i u njemu postavis jednu globalnu promenljivu
Primer
Code:

Public strIme As String

U nekom eventu prve forme ocitas tekst iz TextBoxa (u Click ili Unload npr.)
Code:

Private Sub cmdGetText_Click()
strIme = txtIme.Text
End Sub

Kad je forma nestala (Unload) podatci su sacuvani u onoj globalnoj promenljivoj (kod i promenljive iz Modula su dostupni tokom celog trajanja izvrsenja programa)
Onda u Load eventu druge forme postavis vrednost label.Caption na tu iz promenljive.
Isto mozes i da u Unload eventu prve forme podesis Caption labele sa druge forme
Ovo bi bio taj drugi nacin
Npr
Code:

Private Sub Form_Unload(Cancel As Integer) 'Unload Forme1
Form2.Label1.Caption = txtIme.Text
End Sub
[ stefanpn @ 06.04.2008. 01:37 ] @
Znaci hoces Hall of Fame tabelu? Samo nije mi jasno da li ne umes da je napravis, ili ne umes da je sacuvas?

Bilo kako bilo:

Treba ti jedan niz od recimo 10 elemenata (znaci lista 10 najboljih takmicara) tipa Rezultat

i 3 sub-a

Code:

Private Type Rezultat
        ime as string
        brojpoena as integer
End Type
const dl = 9 ' duzina liste
Dim TopLista(dl) as rezultat

' Kad ti dodje taj kraj igre onda pozoves sub ProveriRezultat sa parametrima ime igraca, brojpoena

' Kad izlazis iz igre pozoves sub SnimiRezultat

' Na form_load pozoves sub Ucitaj rezultat

public sub ProveriRezultat(byval ime as string, byval brojpoena as integer)
dim t as integer
dim t2 as integer
for t = 0 to dl 
        if brojpoena > TopLista(t).brojpoena then
                For t2 = dl To t + 1 Step -1
                        TopLista(t2).ime = TopLista(t2 - 1).ime
                        TopLista(t2).brojPoena = TopLista(t2 - 1).brojPoena
                Next t2
                toplista(t).ime = ime
                toplista(t).brojpoena = brojpoena
                exit sub
        end if
next t
end sub

Public Sub SnimiRezultat()
dim t as integer
dim ff as integer
ff = freefile()
open "rezultat.dat" for output as #ff
        for t = 0 to dl
                print #ff, toplista(t).ime
                print #ff, toplista(t).brojpoena
        next t
close #ff
End Sub

Public Sub UcitajRezultat()
on error resume next
dim t as integer
dim ff as integer
ff = freefile()
open "rezultat.dat" for input as #ff
        for t = 0 to dl
                input #ff, TopLista(t).ime
                input #ff, TopLista(t).brojpoena
        next t
close #ff
End Sub


Izvinjavam se ako ima nekih sintaxnih gresaka, ali bi to bila ta logika...

Okaci kviz kad zavrsis pa da se i mi malo poigramo!

BTW: Mogao si i malo lepse/primerenije da nazoves temu! Ovde su sve teme u vezi sa VB-om!!!

[edit] Nisam ni video da je Nebojsa okacio post, pa samo da kazem da ja mislim da je mislio na ovako nesto [/edit]
[ Eurora3D Team @ 06.04.2008. 10:25 ] @
Bolje sto nisi video da sam ja vec nesto napisao
Ovako je veca sansa da smo pogodili sta je covek mislio ...
[ zeljan znanja @ 06.04.2008. 11:12 ] @
Hvala vam sto ste odgovorili,
Ali ipak nisam uspio da napravim.
Problem je u tome sto ja ucim da programiram vec nekih mjesec dana i to ne svaki dan
jer idem u skolu i nemam vremena. Odgovorili ste veoma detaljno ali ipak nisam skontao.
Napisali ste da nisam dobro objasnio pa evo pokusacu to bolje da ucinim.
Pa vas molim ako mozete da mi kod napisete nesto jednostavnije, evo napisat cu primjer kako ja
to zamisljam.
Dakle imam Form4 (jer tako dodje u mene za kviz kako sam programirao ), na njoj se nalaze Text1 i Command1,
e sada bi zelio da kada neko unese njegovo ime u Text1 i klikne na komandno dugme da mu se otvori Form5 i u njoj da
bude spisak tih 10 najboljih sa rezultatima i unesenim imenom iz Text1.
Zelio bi da ako je moguce da samo razdvojite kod koji ide u Form4 i Form5 jer mozda necu skontati.
Nadam se da je ovo razumljivije i da ce te mi moci pomoci.

Hvala svima unaprijed, a posebno " Eurora3D Team i stefanpn " jer su se jedini potrudili da odgovore
tj. da pomognu.
[ steve585 @ 06.04.2008. 11:30 ] @
Da li imas bazu podataka?
Ako da koju?

U biti gdje si smjestio rezultate?

ADO objektom definiraj upit tipa
Code:

Select razultat from Tabela where igrac = Text1.Text order by rezultat desc


Potom izdvoji deset najboljih.
[ zeljan znanja @ 06.04.2008. 11:46 ] @
Prvo da kazem da nemam bazu podataka jer je ne znam napraviti.
Radio sam preko nacina koji nije ispravan ali radi.

npr. Private Sub Setpitanje () ....

Mozete li mi jednostavnije objasniti npr. kroz primjer kao sto sam zamolio u prethodnom postu jer tek
ucim da programiram pa ne znam kada mi tako kazete.

Hvala

[ stefanpn @ 06.04.2008. 13:15 ] @
Evo ti najprostije moguce u atacmentu, treba samo da izmenis par redova programa:

[edit] Primer ima u form4 red sa RND f-jom koji se treba obrisati/prepraviti [/edit]

[Ovu poruku je menjao stefanpn dana 06.04.2008. u 15:05 GMT+1]
[ steve585 @ 06.04.2008. 13:16 ] @
Nemoj raditi preko nacina koji nije ispravan.

Otvori Access napravi bazu podataka "Kviz".
Trebati ces za rezultate kreirati jednu tabelu sa kolonama Naziv_Igraca i Rezultati

Za Access imas imas dosta tutoriala i nije komplikovan.
Javi kada napravis. :-)
[ zeljan znanja @ 06.04.2008. 13:49 ] @
Hvala vam sto ste ovako napravili jer nisam ocekivao da ce mi
bas neko ovako da uradi.
Samo ponovo imam jedan problem u ovome jer broj bodova koji bude osvojen u kvizu
nebude prikazan u listi, nego bude prikazan sasvim neki drugi.
U ovom vasem primjeru samo sam mijenjao:
lblBrojPoena u lblbodovi(tako se kod mene zove)
bpoena u lblbodovi
Rnd * 100 u Rnd * 50 (jer u mene se toliki broj bodova dobiva za tacan odgovor, ali nisam siguran jesteli na to mislili)
i premjestio sam redove koje ste rekli.
Sto se tice baze podataka pokusat cu naci tutorijale i uraditi.

Nadam se da ce te mi opet pomoci
[ stefanpn @ 06.04.2008. 13:52 ] @
Funkcija RND ti vraca slucajno generisan broj!!!

Obrisi taj red, to sam postavio cisto da vidis kako primer radi.

bpoena je variabla tipa integer, nisi mogao da je zamenis labelom.

Ako hoces da ti pomognemo jos vise, postavi projek u zip arhivu i okaci ga na forum, pa cemo ti ispraviti greske.

Pozdrav.

[Ovu poruku je menjao stefanpn dana 06.04.2008. u 15:07 GMT+1]
[ zeljan znanja @ 06.04.2008. 14:15 ] @

Evo sada sam izbrisao taj red i onda uopste nece da unese ime koje
se unese u Form4.
Je li do toga ili nesto drugo

:C

znam da sam dosadan al sta cu kad ne znam, a u knjigama koje sam skidao nema nista.
[ stefanpn @ 06.04.2008. 14:19 ] @
Nisi dosadan, ne brini se...

Postavi na forum tvoju formu4 i formu5 da ih ispravim.
[ zeljan znanja @ 06.04.2008. 14:32 ] @

Evo vam forme
[ stefanpn @ 06.04.2008. 14:45 ] @
Evo ispravke...

FormX.lblBodovi.Caption trebas ispraviti u ime_tvoje_forme.lblBodovi.Caption

I jos jedna stvar ako ti se labela zove samo "Bodovi" nemoj da pises "lblBodovi" vec xxxx.Bodovi.Caption!!!

[ zeljan znanja @ 06.04.2008. 15:01 ] @
Ma opet nece da radi.
Evo ti citav kviz pa pogledaj, stavio sam password koji cu ti poslati na mail tako da drugi nemogu koristiti.



[edit]

izbrisan fajl uz poruku, ukoliko ne zelis da ostali clanovi foruma budu u mogucnosti da otvore arhivu onda istu nemoj kaciti na forumu nego posalji na mejl onome kome je "dozvoljeno" da je otvori

[/edit]


[Ovu poruku je menjao Aleksandar Ružičić dana 06.04.2008. u 16:25 GMT+1]
[ Aleksandar Ružičić @ 06.04.2008. 15:28 ] @
@zeljan znanja: obrisao sam ti fajl koji si okacio uz poruku, ako hoces da ti ostali clanovi foruma pomognu onda nemoj stavljati sifru na arhivu

mene licno ovakvi postupci odbijaju da pomognem, pogotovu kada su u pitanju pocetnici. kakav to super tajni program neko pravi a ne zna osnove programiranja? koja je svrha sakrivanja koda ako si jos uvek pocetnik i ako trazis pomoc za pocetnicka pitanja?

i jos nesto, posto vidim da si nov na forumu savetujem ti da procitas Pravilnik za korisnike

u Pravilniku, izmedju ostalog pise da treba koristiti [code][/code] tagove kada postujes kod, sto ti ne postujes koliko mogu da vidim (ali moguce je da nisi znao, pa sam ti zato dao link ka Pravilniku gde imas sve lepo objasnjeno)
[ zeljan znanja @ 06.04.2008. 15:32 ] @
Razumio sam Aleksandre, samo za tvoju informaciju passworda nije ni bilo
to sam napisao samo da neko ne bi kopirao pitanja, ali u svakom slucaju hvala
na kritici i procitacu pravila.

A evo sada kviz pa ako mozes pomozi.
[ stefanpn @ 06.04.2008. 15:36 ] @
Evo sad radi!!!

Samo, jako si me zasmejao sa zastitom koju si tako "strucno" postavio...

Jedva sam se snasao u tvom kodu. Da si ovo napisao malo optimalnije imao bi maksimum 30-ak redova i pitanja u bazi...

Ali sta sad, i ja sam tako pocinjao. Vremenom ces shvatiti sve.

Sve najbolje u radu!

[edit] Ružičiću bre pa ti dušu nemaš, što obrisa čoveku atačment, trebao si prvo da vidiš kakva je zaštita u pitanju! [/edit]
[ zeljan znanja @ 06.04.2008. 15:43 ] @

Koliko vidim pogledao si kviz prije nego je Aleksandar obrisao,
Hvala ti na svemu samo da ti kazem taj password koji si vidio
to sam cisto pokusavao da vidim kako zastiti neki program
tako da nisam probao zastiti zip ako si na to mislio pa se smijes ali
nema veze hvala svima.

Najbolji ste
[ Aleksandar Ružičić @ 06.04.2008. 15:45 ] @
ako nije bilo passworda izvinjavam se, ali tako si napisao :)
[ rgdrajko @ 06.04.2008. 19:33 ] @
Veoma simpaticno.

Obicno se umesto Command Button koristi koristi kontrola Label koja isto ima dogadjaj Click a preko svojstva Border Style kada je postavljeno na Fixed Single dobijamo okvir.

U principu u kvizu treba da postoji i mogucnost da kada neko oblelezi taj odgovor(npr. drugom bojom) da moze i da se predomisli i da umesto tog odgovora izabere neki drugi odgovor, kao npr u kvizu Milioner i drugim kvizovima.
[ zeljan znanja @ 06.04.2008. 19:57 ] @
Podrav,
Neznam da li si procitao prethodne postove, ali ja sam pocetnik u
ovome i ne znam tako neke malo bolje stvari.
Mogu te samo zamoliti da ako ti nije tesko da na ovom kvizu uradis te izmjene
i postavis kviz na forum. Znam da sada ovo izgleda kao da zelim da mi neko uradi sve ali samo odgovaram
na pozitivnu kritiku od "rgdrajko" pa ako mozete pomozite.
Svejedno ja sam zadovoljan zbog ovog sto imam jer sam pocetnik, a uz vasu pomoc
imam unekoliko dobar kviz.
Hvala ti na davanju savjeta!!!