Avatar
alien8k
Člen
Avatar
alien8k:

Zdravím.
Pracuji na testovacím softwaru a mám problém s připočítáváním k proměné za každou správnou odpověď. Mám každou otázku zvlášt na jiném okně a po zaškrtnutí otázky a stiknutí pokračovat potřebuji aby se mě k proměné přičetlo 1 nebo nic zaleží pokud bylo správně odpovězeno. A na posledním okně zobrazit výsledek. Přikládám screen bottonu z první otázky. (v dalším okně je naprosto totožný button jen pozměněný na správnou odpověd)

Editováno 7.3.2015 9:53
 
Odpovědět 7.3.2015 9:52
Avatar
Gramli
Redaktor
Avatar
Odpovídá na alien8k
Gramli:

ten formular, ve kterem je promena pro pocet spravnych odpovedi musis poslat jako parametr do tech formularu, ve kterych odpovidas -> ziskas pristum k promene formulare pro spravne odpovedi. A nebo to muzes vyeresit pres delegaty.

Nahoru Odpovědět 7.3.2015 11:50
Kdo to říká ten to je...
Avatar
alien8k
Člen
Avatar
alien8k:

vytvořím si tedy promenou:
Dim pocitadlo as integer = 0
a u správného podmínky check boxu přidám co? Aby to přičetlo 1 u ostatních check boxů neudělá nic.
Jakým příkazem to poté pošlu do dalšího formuláře aby znal aktuální hodnotu proměné

 
Nahoru Odpovědět 7.3.2015 12:31
Avatar
rwn
Člen
Avatar
Odpovídá na alien8k
rwn:

Do ostatní oken to můžeš posílat přes konstruktor (jako proměnnou a pak si í přiřadit v každé třídě do privátní proměnné, on se ti do proměnné uloží odkaz na tu tvojí jednu promměnou). Nebo si můžeš udělat třeba třídu, která ti to bude počítat, pak by stačilo instanci na tuto třídu sdílet se všema oknama. Udělal bys tam něco jako metodu pricti() a v jednotlivých oknech bys jí už jen volal.. :)

Editováno 7.3.2015 13:13
Nahoru Odpovědět 7.3.2015 13:12
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na rwn
Jan Vargovský:

U intu se ti zrovna odkaz nezkopíruje, ale zkopíruje se hodnota. Viz primitivní typy.

 
Nahoru Odpovědět  +1 7.3.2015 13:22
Avatar
rwn
Člen
Avatar
Odpovídá na alien8k
rwn:

Nebo mě spíš napadá, že by sis mohl udělat nějakou třídu se statickou vlastností, která bude znázornovat počet, pak tam bude statická metoda, která bude onu hodnotu zvětšovat.. něco takového

public class Pocitadlo
{
    public static int Pocet {get; set;}

    public static void pricti()
    {
        pocet++;
    }
}

Pak bys mohl odkudkoliv onu proměnnou zvětšivat

Pocitadlo.pricti();

a stejně tak si onu hodnotu zjistit přes

Pocitadlo.Pocet

Odpadne ti nutnost sdílet instance s ostatníma oknama pokud jich máš hodně..

Nahoru Odpovědět 7.3.2015 13:33
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
Jan Vargovský
Redaktor
Avatar
 
Nahoru Odpovědět  +1 7.3.2015 13:47
Avatar
rwn
Člen
Avatar
Odpovídá na Jan Vargovský
rwn:

Proč ne? Pokud těch oken má hodně a nechce vytvářet hodně instancí, tak se to tak dá řešit nebo ne? Pouč mě. :)

Nahoru Odpovědět 7.3.2015 13:49
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na rwn
Jan Vargovský:

Vytvářet hodně instancí? Ty si snad má předávat jako závislosti. A hodně oken jako "výmluvu" fakt neberu :D

 
Nahoru Odpovědět 7.3.2015 13:54
Avatar
alien8k
Člen
Avatar
alien8k:

Mám co otázka to jiný formulář, takže to musím vyřešit přes txt.
jakou podmínku pro cyklus mám použít, když:
mám v textaku na první řádku otázku, na druhé 1. odpoved, na třetím 2. odpoved a na čtvrtém řádku 3. odpoveď, a páty řádek už zase začíná novou otázkou a tak pořád. potřebuju aby mě to do jednoho textboxu vypsalo otazku a do zbylích tří tři možné odpovědi. Navíc aby to vybralo náhodně a nějak identifikovat jednu z ětch odpověíd jako správnou aby se dalo nějak odpovídat, no prostě katastrofa.. pročetl jsme si http://www.dotnetportal.cz/…e-se-soubory
ale vůbec nepomohlo :D protože já potřebuji uplně něco jiného

 
Nahoru Odpovědět 7.3.2015 15:13
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na alien8k
Jan Vargovský:

Můžeš hodit screeny těch formů - jen z důvodu abych chápal, proč máš pro každou otázku jiný form.

Editováno 7.3.2015 15:37
 
Nahoru Odpovědět 7.3.2015 15:36
Avatar
rwn
Člen
Avatar
Odpovídá na alien8k
rwn:

..a jinak co se týče onoho ukládání do .txt, tak to máš možná už lepší si uložit na jeden řádek otázku a všechny odpovědi za to, kdy mezi jednotlivé položky vložíš nějaký oddělovací znak (dá se to pak "rozřezat" podle onoho znaku), např by to v souboru vypadalo takto..

 otázka1|odpověd1|odpověd2|odpověd3
otázka2|odpověd1|odpověd2|odpověd3

přičemž třeba první odpověd bude správná, pak při vygenerování otázek si je rozhodíš náhodně..

Editováno 7.3.2015 16:17
Nahoru Odpovědět 7.3.2015 16:16
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
alien8k
Člen
Avatar
Odpovídá na Jan Vargovský
alien8k:

Mám každou otázku v jiném formu, protože nevím jak vytvořit podmínku streamreaderu, tak aby mi z textáku vypsal náhodně vybranou otázku s odpovědmi , každá do jiného pole + to ještě musí mít identifikátor, který určí co je správná odpoveď.. a jeste je nejspíš prohazovat aby nebyla správná odpoved vždy ve stejném poli.
Jak budu doma nahodím screen.

Editováno 9.3.2015 10:05
 
Nahoru Odpovědět 9.3.2015 9:59
Avatar
alien8k
Člen
Avatar
Odpovídá na alien8k
alien8k:

EDIT:

Dim soubor As New IO.StreamReader("databaseotazekaodpovedi.txt")
        While Not soubor.EndOfStream
            Dim otazka As string = soubor.ReadLine()     //takhle mi to ale čte po řádcích, není to lepší?
            Dim odpoved1 As string = soubor.ReadLine()
            Dim odpoved2 As String = soubor.ReadLine()
            Dim odpoved3 as string = soubot.readline()

            Dim otazka As New textbox1()
            dim odpoved1 as new textboy2()
            dim odpoved2 as new textbox3()
            dim odpoved3 as new textbox4()
            If odpoved1,2,3 = "nějaký identifikátor, nevím jak to napsat" Then polozka = jako správná odpoved

        End While
 
Nahoru Odpovědět 9.3.2015 11:21
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na alien8k
Jan Vargovský:

Máš si uložit odpovědi do paměti a z nich náhodně vybírat. Ty, na které už ses ptal, tak můžeš smazat, protože tě už dále nezajímají.

 
Nahoru Odpovědět 10.3.2015 18:02
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 15 zpráv z 15.