[ Cal Lightman @ 29.08.2014. 18:23 ] @
Pozdrav svima.

Ukratko, u pitanju je aplikacija koja, u suštini, predstavlja običan brojač (dakle, računa se vreme proteklo između Trenutka1 i Trenutka2).

Problem se javlja kada pokušam da se logujem (pri čemu se zatvara Login form i otvara Main form):



Takođe, kada pokušam da otvorim "Settings panel" (ujedno i poslednja, treća, forma - Settings form), dešava se slična stvar.



Vidim da nešto nije u redu sa klasama/instacama, čime već. Uglavnom, uveren sam da je rešenje jednostavno, ali ja ga jednostavno ne vidim, ubih se probavajući razne "recepte". Moram da napomenem da se program ne gasi, već samo iskače taj exception i kad se klikne Continue, aplikacija nastavlja s radom. Takođe, ovo se dešava kada se aplikacija instalira, kada je runujem iz VS, radi sve normalno.

Ako neko kompetentniji želi da pomogne, siguran sam da bi rešio problem časkom. U tom slučaju, pošto nema smisla da kopiram sve, uploadovao sam ceo solution (pregledan i sa komentarima): LINK

[ dusans @ 29.08.2014. 19:25 ] @
Exception 1:
Ne vidi se kada se pokrene iz VS-a (nisam video zašto ali definitivno se dešava)
Form1.cs, linija 468, pokušava se kreiranje fajla (Environment.SpecialFolder.ApplicationData))\Switzerland\Data.xml
Problem pravi Switzerland folder koji ne postoji i mora se kreirati pre ove linije.

Exception 1*:
Postoji i problem u liniji 508, kada u Data.xml ne postoji EndingPoint element.

Exception 2:
Dešava se kada 2-gi ili neki naredni put klikneš na Settings dugme, pošto je se NE pravi nova instanca forme settings
već se koristi već kreirana instanca koja je disposed posle prvog zatvaranja.
Za početak, u form1.cs, pre linije 538, probaj da instanciraš novu Settings formu u f2.

Sve su neke "glupe" greške i verovatno ih ima još, čini mi se kao da program nije uopšte testiran,
da je prođeno barem jednom kroz sve metode i grananja (a nema ih puno) odmah bi se videli problemi.

[Ovu poruku je menjao dusans dana 29.08.2014. u 20:37 GMT+1]
[ Cal Lightman @ 29.08.2014. 20:14 ] @
Dušane, hvala ti na odgovoru.

Da, definitivno nije istestiran kako treba, već onako u hodu.

Što se tiče ovog prvog, sad to izgleda ovako:

Code:

            string path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); // declaring the path of the ApplicationData special folder
            string switzerland_path = path + "\\Switzerland\\Data.xml"; // declaring the entire path (ApplicationData + the program's own path)

            //
            // checking whether the directory exists at all:
            //
            // ...if it DOES NOT:
            //
            // creating one;
            //

            if (!Directory.Exists(path + "\\Switzerland"))
                Directory.CreateDirectory(path + "\\Switzerland");
            
            //
            // checking whether The XML file exists at all:
            //
            // ...if it DOES NOT:
            //

            if (!File.Exists(switzerland_path))
            {
                // creating The XML:

                XmlTextWriter xW = new XmlTextWriter(switzerland_path, Encoding.UTF8); // new instance of XmlTextWriter();

                xW.WriteStartElement("Decisions"); // writing Start Element;
                xW.WriteEndElement(); // writing End Element;

                xW.Close(); // closing the XmlTextWriter();

            } // end if



Brinem se da to nije jedino mesto gde fali i gde treba dodati Directory.CreateDirectory.

Što se tiče drugog, dodao sam:

Code:
        public void Settings()
        {
            //
            // This event triggers when Settings button is clicked.
            //
            Settings f2 = new Settings();

            f2.Show(); // opening Settings form;

        } // end Settings();


... s tim da mi sad ne funkcioniše MasterReset(). Vidim ja da je problem u tome što ne umem da uskladim pravilno sve te public, private, static, public static...što ne znam kako funkcionišu instance, tj. da mi fali sistematičnost.
[ Cal Lightman @ 30.08.2014. 16:09 ] @
Rešeni svi problemi, sve radi kao sat.

Može lock.