C# - Problemi i rješenja izdvojena tema

poruka: 2.151
|
čitano: 703.873
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
offline
C# - Problemi i rješenja

Kad se u tvoj kalkulator unose decimalni brojevi, unose se u američkom formatu, a rezulat je u europskom formatu ako su postavke control panela na HR.

Pogledaj malo kako je to sređeno u windows kalkulatoru, ovisno o postavkama u control panelu, a o tom sam pisao u onom postu o kulturama.

Tu ne bi smjelo biti dvojbi, po postavkama control panela treba biti i input i optput. Aplikacija se piše za korisnika, a ne programera.

 

Ovako sam ja riješio hot keyse, pa pogledaj malo

 

 private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (Control.ModifierKeys != Keys.Shift)
            {
                if (e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9)
                {
                    SetTextFromKeyBoard(e.KeyValue);
                }
            }
            if (e.KeyCode >= Keys.NumPad0 && e.KeyCode <= Keys.NumPad9)
            {
                SetTextFromKeyBoard(e.KeyValue);
            }
            if (e.KeyCode == Keys.Back || e.KeyCode == Keys.Delete)
            {
                SetTextFromKeyBoard(e.KeyValue);
            }
            if (e.KeyCode == Keys.Enter)
            {
                SetTextFromKeyBoard(e.KeyValue);
            }
            if (e.KeyCode == Keys.G || e.KeyCode == Keys.L)
            {
                SetTextFromKeyBoard(e.KeyValue);
            }
            if (e.KeyCode == Keys.X)
            {
                SetTextFromKeyBoard(e.KeyValue);
            }
        }

 

Dakle, kad stisnem točno ove određene tipke, poziva mi ovaj metod, za ostale tipke ne radi ništa.

 

 private void SetTextFromKeyBoard(int keyValue)
        {
            textBox1.Select();
            switch (keyValue)
            {
                case 8:
                    ClearOneCharachter();
                    break;
                case 13:
                    AddNumbers();
                    break;
                case 46:
                    DeleteLine();
                    break;
                case 48:
                    NamjestiTekst("0");
                    break;
                case 49:
                    NamjestiTekst("1");
                    break;
                case 50:
                    NamjestiTekst("2");
                    break;
                case 51:
                    NamjestiTekst("3");
                    break;
                case 52:
                    NamjestiTekst("4");
                    break;
                case 53:
                    NamjestiTekst("5");
                    break;
                case 54:
                    NamjestiTekst("6");
                    break;
                case 55:
                    NamjestiTekst("7");
                    break;
                case 56:
                    NamjestiTekst("8");
                    break;
                case 57:
                    NamjestiTekst("9");
                    break;
                case 71:
                    GCD();
                    break;
                case 76:
                    LCM();
                    break;
                case 88:
                    ClearAll();
                    break;
                case 96:
                    NamjestiTekst("0");
                    break;
                case 97:
                    NamjestiTekst("1");
                    break;
                case 98:
                    NamjestiTekst("2");
                    break;
                case 99:
                    NamjestiTekst("3");
                    break;
                case 100:
                    NamjestiTekst("4");
                    break;
                case 101:
                    NamjestiTekst("5");
                    break;
                case 102:
                    NamjestiTekst("6");
                    break;
                case 103:
                    NamjestiTekst("7");
                    break;
                case 104:
                    NamjestiTekst("8");
                    break;
                case 105:
                    NamjestiTekst("9");
                    break;

            }
        }

 

 

A pozivani metod mi je ovaj:

 

  void NamjestiTekst(string unos)
        {
            if (kontrolnaVarijabla)
            {
                if (unos.CompareTo("0") != 0)
                {
                    textBox1.Text = unos;
                    textBox2.Text = unos;
                    textBox4.Text = "";
                    kontrolnaVarijabla = false;
                    kontrolnaVarijabla1 = true;
                }
            }
            else
            {
                textBox1.Text += unos;
                textBox2.Text += unos;
            }
        }

 

Na ovaj način dobiješ to da nema broja 05 kad ukucaš 05 nego 5, a tako možeš riješiti i da ne ukuca aritmetički operator ako ga prvog stisneš, što vidim da daje čudne rezultate.

Poruka je uređivana zadnji put uto 8.10.2013 22:11 (Floki).
 
1 0 hvala 1
16 godina
neaktivan
offline
Re: C# - Problemi i rješenja

Otvori program i klikni na označeni gumb i unhandled exception

 

ili kada probaš pobrisati operater (- +) isto se lomi

 

i očito nisi namjenio da se prozoru mjenja veličina pa onemogući to.

Poruka je uređivana zadnji put uto 8.10.2013 21:20 (Dr. Zoidberg).
17 godina
neaktivan
offline
C# - Problemi i rješenja

-Poruka zastarila-

IRebic
Poruka je uređivana zadnji put sri 16.10.2013 21:51 (IRebic).
Moj PC  
0 0 hvala 0
17 godina
offline
Re: C# - Problemi i rješenja
IRebic kaže...

Nova verzija (http://www.filedropper.com/digitron_3) popravljeno dosta slučaja rušenja kad se upre dugme za brisane uključujući kad se upre na tek otvorenom programu (bar se meni ne ruši sad nikako)

Više se ne može mijenjati veličina prozora
Dodani hotkey-evi za sve osim entera (dodan i za enter ali radi tek nakon što se upre dugme za jednako (nemam pojma zašto)) @Floki, hvala na ovim keycode-ovima taman san naiša na tutorial od thenewboston-a u isto vrijeme kad si ih ti stavio pa san kombinirao i sad sve radi osim entera :D

 

Pusti fontove u k..., sredi to za kulture i ove čudne stvari -5 + 9 = 59

šminka ide najzadnja

17 godina
odjavljen
offline
Re: C# - Problemi i rješenja
Floki kaže...

 

Pusti fontove u k...

 

Ovo je jedna od čestih faza u razvoju softvera {#}

Freak Show Inc.
17 godina
offline
Re: C# - Problemi i rješenja
Friday kaže...
Floki kaže...

 

Pusti fontove u k...

 

Ovo je jedna od čestih faza u razvoju softvera {#}

 

Znaš ono, vidiš zgodnu plavušu, sve super, ali pobjegneš kad progovori, čini mi se Marinkovićev Kiklop i Melkior Tresić, glumio ulogu Frano Lasić na filmu.

Ovdje nije baš taj slučaj, ali prije fontova uštimati motor, to svakako.

14 godina
neaktivan
offline
Re: C# - Problemi i rješenja

Glede kultura mislim da bi se ovako nešto moglo napraviti (netestirano):

 

using System.Globalization;

double StringToDouble(String broj){
    String decimalniSeparator = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;
    broj = broj.Replace(".", "#"); 
    broj = broj.Replace(",", "#");
    return Convert.ToDouble(broj.Replace("#", decimalniSeparator));
}

 

Sada bi neovisno o trenutnim OS postavkama sve trebalo raditi.

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
17 godina
offline
Re: C# - Problemi i rješenja
TracerCPP kaže...

Glede kultura mislim da bi se ovako nešto moglo napraviti (netestirano):

 

using System.Globalization;

double StringToDouble(String broj){
    String decimalniSeparator = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;
    broj = broj.Replace(".", "#"); 
    broj = broj.Replace(",", "#");
    return Convert.ToDouble(broj.Replace("#", decimalniSeparator));
}

 

Sada bi neovisno o trenutnim OS postavkama sve trebalo raditi.

 

Može, taj tvoj metod je programerski OK i domišljato napravljen.

Inače to se može mijenjanjem postavki kultura, ako će baš raditi neke svoje stringove u programu. Na to bi mogao onda nadovezati i button točku i zarez ovisno o kulturi i rad točka i zarez tipke na tipkovnici po uzoru na windows kalkulator.

Ali što se tiče tvog metoda, OK je, mogu reći samo, svaka čast na domišljatosti, super.

16 godina
odjavljen
offline
Re: C# - Problemi i rješenja
Friday kaže...
Floki kaže...

Pusti fontove u k...

Ovo je jedna od čestih faza u razvoju softvera {#}

Da, i "radi, ne diraj".

 

Ali onda ta metoda/klasa nekim čudom završi u release kodu iako se sastoji od 50% komentiranog koda a ostalih 50% je voodoo koji razumiješ tek oko 3 ujutro, nakon šeste šalice kave - u istim uvjetima kada je i nastao Smijeh

http://nighthawk-software.blogspot.com/
17 godina
neaktivan
offline
Re: C# - Problemi i rješenja
Floki kaže...
IRebic kaže...

Nova verzija (http://www.filedropper.com/digitron_3) popravljeno dosta slučaja rušenja kad se upre dugme za brisane uključujući kad se upre na tek otvorenom programu (bar se meni ne ruši sad nikako)

Više se ne može mijenjati veličina prozora
Dodani hotkey-evi za sve osim entera (dodan i za enter ali radi tek nakon što se upre dugme za jednako (nemam pojma zašto)) @Floki, hvala na ovim keycode-ovima taman san naiša na tutorial od thenewboston-a u isto vrijeme kad si ih ti stavio pa san kombinirao i sad sve radi osim entera :D

 

Pusti fontove u k..., sredi to za kulture i ove čudne stvari -5 + 9 = 59

šminka ide najzadnja

Ovo minus dugme nema funkciju predznakla (još) ako si pritisnio - pa zatim 5 pa zatim + pa zatim 9 dobio si 59 er je tako programiran trenutno ništa čudno
ako npr ukucaš 5 pa - pa 10 dobit ćeš -5 i to zbroiš sa 9 rezultat će bit 4...

 

IRebic
17 godina
odjavljen
offline
C# - Problemi i rješenja

Evo da se ja nadovežem na priču o DAL-u. Mi koristimo linq2sql. Imamo 15-ak Linq2Sql klasa u kojima su nam "potrpane" tablice. ADO.NET koristimo tamo gdje su performanse vrlo bitne. Kad smo počeli raditi na ovom projektu (2008.) EF nije bio dostupan (mislim da je bila neka alpha) a L2S nam se činio vrlo zgodan (znatno lakši od rada sa DataTable objektima).

Ovo je dio jednog dbml fajla:

 

EDIT:

Ima točno 30 tih klasa u projektu, sad sam prebrojao {#}

Freak Show Inc.
Poruka je uređivana zadnji put sri 9.10.2013 10:31 (Friday).
 
0 0 hvala 1
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja

A kad nešto vadiš/pišeš u bazu, jel pišeš neki metod za to u klasama ili svaki put pišeš linq kôd?

 

Kakva je to baza, divovska. :)

Poruka je uređivana zadnji put sri 9.10.2013 10:33 (royalhero).
17 godina
odjavljen
offline
Re: C# - Problemi i rješenja
royalhero kaže...

A kad nešto vadiš/pišeš u bazu, jel pišeš neki metod za to u klasama ili svaki put pišeš linq kôd?

 

Kakva je to baza, divovska. :)

 

Business klase imaju svoje fetch metode. A na puno mjesta ima linq koda koji služi za select nekih pomoćnih stvari.

Baza nije baš divovska, trenutno ima 394 tablice, 260 view-ova, 284 procedure, 90 funkcija...

Freak Show Inc.
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja
Friday kaže...

 

Business klase imaju svoje fetch metode.

To i pitam, jel ide po jedna business klasa za jedan enitet?

14 godina
neaktivan
offline
Re: C# - Problemi i rješenja
Friday kaže...
royalhero kaže...

A kad nešto vadiš/pišeš u bazu, jel pišeš neki metod za to u klasama ili svaki put pišeš linq kôd?

 

Kakva je to baza, divovska. :)

 

Business klase imaju svoje fetch metode. A na puno mjesta ima linq koda koji služi za select nekih pomoćnih stvari.

Baza nije baš divovska, trenutno ima 394 tablice, 260 view-ova, 284 procedure, 90 funkcija...

284 procedure, 90 funkcija... O čemu točno pričaš? To je sve na klijent strani???

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
12 godina
neaktivan
offline
C# - Problemi i rješenja

Počeo sam i završio jedan projekt sa Microsoft SQL Server Compact bazom (.sdf). Može li se ovakva aplikacija koristiti na svim računalima sa .Net Frameworkom ili moraju imati i instaliran SQLserver. 

PS. Oprostite ako je pitanje glupo

Optimizam je nedostatak iskustva
Moj PC  
0 0 hvala 0
17 godina
odjavljen
offline
Re: C# - Problemi i rješenja
royalhero kaže...
Friday kaže...

 

Business klase imaju svoje fetch metode.

To i pitam, jel ide po jedna business klasa za jedan enitet?

 

Da, nešto oko 400 business klasa ima...

 

TracerCPP kaže...
Friday kaže...
royalhero kaže...

A kad nešto vadiš/pišeš u bazu, jel pišeš neki metod za to u klasama ili svaki put pišeš linq kôd?

 

Kakva je to baza, divovska. :)

 

Business klase imaju svoje fetch metode. A na puno mjesta ima linq koda koji služi za select nekih pomoćnih stvari.

Baza nije baš divovska, trenutno ima 394 tablice, 260 view-ova, 284 procedure, 90 funkcija...

284 procedure, 90 funkcija... O čemu točno pričaš? To je sve na klijent strani???

 

Na bazu se to odnosi - stored procedure i UDF

Freak Show Inc.
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja
ShAdOw_GaBa kaže...

Počeo sam i završio jedan projekt sa Microsoft SQL Server Compact bazom (.sdf). Može li se ovakva aplikacija koristiti na svim računalima sa .Net Frameworkom ili moraju imati i instaliran SQLserver. 

PS. Oprostite ako je pitanje glupo

Ne treba ti SQL Server, jer to nije baza koja se vrti na tom engine-u. To je nešto poput SqlLite.

12 godina
neaktivan
offline
Re: C# - Problemi i rješenja

Hvala na brzom odgovoru. ;=)

Optimizam je nedostatak iskustva
15 godina
offline
Re: C# - Problemi i rješenja
IRebic kaže...
Floki kaže...
IRebic kaže...

Nova verzija (http://www.filedropper.com/digitron_3) popravljeno dosta slučaja rušenja kad se upre dugme za brisane uključujući kad se upre na tek otvorenom programu (bar se meni ne ruši sad nikako)

Više se ne može mijenjati veličina prozora
Dodani hotkey-evi za sve osim entera (dodan i za enter ali radi tek nakon što se upre dugme za jednako (nemam pojma zašto)) @Floki, hvala na ovim keycode-ovima taman san naiša na tutorial od thenewboston-a u isto vrijeme kad si ih ti stavio pa san kombinirao i sad sve radi osim entera :D

 

Pusti fontove u k..., sredi to za kulture i ove čudne stvari -5 + 9 = 59

šminka ide najzadnja

Ovo minus dugme nema funkciju predznakla (još) ako si pritisnio - pa zatim 5 pa zatim + pa zatim 9 dobio si 59 er je tako programiran trenutno ništa čudno
ako npr ukucaš 5 pa - pa 10 dobit ćeš -5 i to zbroiš sa 9 rezultat će bit 4...

 

 

 

Fontove sam ja rijesio tako da sam svoj program upakirao u installer i u njemu kod instaliranja je on prebacio fontove (i neke dll-ove) tamo gdje treba u WINDOWS direktorij.

16 godina
odjavljen
offline
Re: C# - Problemi i rješenja
Leryan kaže...

Fontove sam ja rijesio tako da sam svoj program upakirao u installer i u njemu kod instaliranja je on prebacio fontove (i neke dll-ove) tamo gdje treba u WINDOWS direktorij.

Evil, evil, evil. That's why we can't have nice things!

 

Zašto .dllove ne ostavljate u folderu sa aplikacijom? Zašto u windows folder?

http://nighthawk-software.blogspot.com/
15 godina
offline
Re: C# - Problemi i rješenja

Krivo sam se izrazio... :D Fontovi su isli u Windows dir negdje (ne sjecam se) pa naravno da dll ide uz exe. :)

Poruka je uređivana zadnji put sri 9.10.2013 13:35 (Leryan).
17 godina
odjavljen
offline
Re: C# - Problemi i rješenja
Leryan kaže...

Krivo sam se izrazio... :D Fontovi su isli u Windows dir negdje (ne sjecam se) pa naravno da dll ide uz exe. :)

 

Ma samo tovari bilo gdje, dok ima mjesta na C disku miran si {#}

Freak Show Inc.
16 godina
odjavljen
offline
C# - Problemi i rješenja

Dost zezanja, we have a problem Smijeh

..

[edit] - nvm, riješeno

http://nighthawk-software.blogspot.com/
Poruka je uređivana zadnji put sri 9.10.2013 19:12 (Sum_of_all_fears).
Moj PC  
0 0 hvala 0
12 godina
neaktivan
offline
C# - Problemi i rješenja

Nedavno sam isprogramirao jednu aplikaciju u WPF-u i koristi SQL Server Compact (.sdf) bazu zajedno sa Entity Frameworkom. Kad je pokrenem na računalu na kojem nije instaliran SQL Server, dobijem poznati error: Application stopped working. Možda je problem u bazi. Ako netko ima sličan problem ili zna rješenje molim da posta.

Optimizam je nedostatak iskustva
Poruka je uređivana zadnji put pet 11.10.2013 11:06 (ShAdOw_GaBa).
Moj PC  
0 0 hvala 0
16 godina
odjavljen
offline
Re: C# - Problemi i rješenja

Napravi try/catch blok tamo gdje bi se error mogao dogoditi (kod izvršavanje querya, kod kreiranja konekcije ili tako nešto - ugl gdje počinješ raditi sa bazom) i baci tekst exceptiona (Exception ex.ToString()) u messagebox i vidi po tome u čemu je problem.

http://nighthawk-software.blogspot.com/
15 godina
offline
C# - Problemi i rješenja

Ako nemozes debuggati na tom racunalu,  napravi u aplikaciji dumpanje informacija o unhandlanim exceptionima u error log pa ces tocno znati o cemu se radi.

npr u main methodi:

AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

 

static void CurrentDomain_UnhandledException( object sender, System.UnhandledExceptionEventArgs e )

     {

Exception ex = e.ExceptionObject as Exception;

         DumpExceptionInfo( ex );

}

 

 public static void DumpExceptionInfo( System.Exception ex )

     {

       string errorLog = string.Format( "*** ERROR on {0} ***\n\n{1}\n\n*** ERROR ***\n\n*** INNER EXCEPTION ***\n\n{2}\n\n*** INNER EXCEPTION ***\n\n*** STACK TRACE ***\n\n{3}\n\n*** STACK TRACE ***\n\n",

        DateTime.Now, ex.Message, ex.InnerException, ex.StackTrace );

       FileStream stream = null;

       try

       {

         stream = new FileStream( "ErrorLog.log", FileMode.Append, FileAccess.Write, FileShare.Read );

         using ( StreamWriter writer = new StreamWriter( stream ) )

         {

           stream = null;

           writer.Write( errorLog );

         }

       }

       finally

       {

         if ( stream != null ) stream.Dispose();

       }

 

     }

   }

 
3 0 hvala 0
12 godina
neaktivan
offline
C# - Problemi i rješenja

Nakon sto sam napravija try catch statement, MessageBox mi je ispisa error: ... Requested .Net Framework Data Provider not found. Maybe it is not installed.

Mislim da sam shvatija u cemu je stvar. Trebao sam kopirate datoteke iz direktorija sql server compacta i referencat neke dllove. Onda sam trebao u App.Config dodati <DbProviderFactories>...

 

Ali, iman sljedeći error:

Message Box sa Errorom Message Box sa Errorom
 

Optimizam je nedostatak iskustva
Poruka je uređivana zadnji put pon 14.10.2013 13:45 (ShAdOw_GaBa).
Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja

Pa ta verzija System.Data.SqlServerCe koja je na sistemu, ne paše onoj koja je referencirana u projektu.

12 godina
neaktivan
offline
Re: C# - Problemi i rješenja

Da, da. Rijesija sam vec prije. 

Optimizam je nedostatak iskustva
Nova poruka
E-mail:
Lozinka:
 
vrh stranice