C# - Problemi i rješenja izdvojena tema

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

Zaboravio sam napisati, ali nije vazno jeli knjiga na engleskom iil hrvatskom. Hvala na prijedlozima.

Katawa Shoujo - GOTY 2012
17 godina
offline
Re: C# - Problemi i rješenja
chromadef kaže...

Zaboravio sam napisati, ali nije vazno jeli knjiga na engleskom iil hrvatskom. Hvala na prijedlozima.

Ako si definitivni početnik, onda uzmi onu koju sam ti predložio, ima čak i zadataka, ne baš dobrih, trebali su ići sa malo kompliciranijim zadacima, ali sve u svemu, ta knjiga je OK.

Poruka je uređivana zadnji put sri 20.6.2012 15:29 (Floki).
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja
Floki kaže...

Ako si definitivni početnik, onda uzmi onu koju sam ti predložio, ima čak i zadataka, ne baš dobrih, trebali su ići sa malo kompliciranijim zadacima, ali sve u svemu, ta knjiga je OK.

Wrox je dobar, ali nije Apressu ni MSPressu do koljena, jedino o ASP.NET-u bi se dalo diskutovati, jer sam pročitao jednu od Wroxa BGNASP.NET 4 i nije loša.
Ali, ako ti imaš volje ni knjiga ni jezik ni bilo šta ti nije ograničenje.

13 godina
neaktivan
offline
C# - Problemi i rješenja

S cime biih najbolje mogao praviti 2d igre s c#?

 

kinder milch schokolade
 
0 0 hvala 0
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja
13 godina
neaktivan
offline
C# - Problemi i rješenja

xna je odličan i za 3d a c# najjači jezik za moj ukus a radio  i u javi i u c-u pomalo

ja sam uzeo diplomski rad na temu XNA

vlastoručni potpis
 
1 0 hvala 1
17 godina
protjeran
offline
C# - Problemi i rješenja

Kad smo več kod  XNA 3D; U čemu napraviti 3D model s više sekvenci? npr trčanje, idle, hodanje koji se može učitati u XNA app. 

Programko http://programko.bloger.hr
 
0 0 hvala 0
15 godina
neaktivan
offline
Re: C# - Problemi i rješenja

Pa možeš to napraviti u blenderu(besplatan je) ali može se i u Mayi(komercijalan program),za ove ostale neznam jer nemam iskustva sa njima!

Programer,web developer
17 godina
protjeran
offline
C# - Problemi i rješenja

Jesi li ikad pokušao, pa da kažeš da radi? Zadnji put kada sam ja to pokušao X Exporter iz Blendera nije radio baš najbolje, a DFX exporter podržava, koliko znam samo jednu sekvencu.

Programko http://programko.bloger.hr
 
0 0 hvala 0
16 godina
odjavljen
offline
C# - Problemi i rješenja

Jedno pitanjce... adapter.Update(tablica) ne želi odvrtiti insert (sa ispravnom sintaksom). Baca ovaj exception

 

Cannot insert the value NULL into column 'id', table 'tablica'; column does not allow nulls. INSERT fails.

 

Ovaj "id" je primarni ključ, postavljen je kao int, auto increment i ostalo je kako treba. Pogledajte sliku.

Problematični id Problematični id
E sad, aplikacija ima valjda sve postavljeno kako treba jer update i delete rade kako treba a dodan je i adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey.

 

Zašto insert ne radi? Tj., zašto AddWithKey ne prolazi? Nagađam da je problem u postavkama ovog IDa... Moguće da je i dio uzroka što je baza u SQLu nastala upsizingom Access 2000 baze. Sve ostale varijable se ispravno pročitaju iz gridviewa i zapisuju u bazu ali taj nesretni id nikako.

 

[edit] - ako u datagridviewu ručno upišem taj id, sve radi kako spada (ili ako ga proslijedim preko neke varijable). Ako fali koja informacija, pitajte.

http://nighthawk-software.blogspot.com/
Poruka je uređivana zadnji put uto 10.7.2012 4:29 (Sum_of_all_fears).
Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
 
0 0 hvala 0
13 godina
protjeran
offline
C# - Problemi i rješenja

 

Pozdrav!

 

Ovako imam jedan problem. Tek sam poceo uciti c# i nije mi jasno zasto se ovaj program izvrsi do kraja, bez da me pita za unos vrijednosti druge varijable. Znam da je pitanje glupo, ali tek sam pocetnik :) 

 

using system;

 

namespace app

 

{

  class Program

 

  {

  static void Main(string[] args)

 

  {

  Console.Write("Unesi prvi broj: "): 

  int a = Console.Read(); 

 

  Console.Write("Unesi drugi broj: "); 

  int b = Console.Read();

 

  int c = a + b;

 

  Console.WriteLine("Rezultat je: " + c); 

  }

  }

}

 
0 0 hvala 0
16 godina
odjavljen
offline
Re: C# - Problemi i rješenja

Treba ti Try.Parse ja mislim. Ne možeš direktno string (.Read) pretvoriti u int).

 

Dakle, Try.Parse(string input1, out a) i Try.Parse(string input2, out b)

 

I mislim da ti treba Console.ReadLine

http://nighthawk-software.blogspot.com/
Poruka je uređivana zadnji put pet 13.7.2012 0:15 (Sum_of_all_fears).
13 godina
neaktivan
offline
Re: C# - Problemi i rješenja

Ne! Console.Read ucitava int, dok Console.ReadLine ucitava string.

13 godina
protjeran
offline
C# - Problemi i rješenja

Evo nasao sam negdje na yahoo answers. Za svaki data type osim stringova, treba napisati ovako, npr: 

 

int a = int.Parse(Console.ReadLine()); 

double b = double.Parse(Console.ReadLine()); 

 

Ovaj double ili int ispred .Parse, mozemo zamijeniti bilo kojim data typom.

 
0 0 hvala 0
13 godina
online
Re: C# - Problemi i rješenja
YoursTruly kaže...

 

Evo nasao sam negdje na yahoo answers. Za svaki data type osim stringova, treba napisati ovako, npr: 

 

int a = int.Parse(Console.ReadLine()); 

double b = double.Parse(Console.ReadLine()); 

 

Ovaj double ili int ispred .Parse, mozemo zamijeniti bilo kojim data typom.

 

Tako je i na dump predavanju.

16 godina
odjavljen
offline
C# - Problemi i rješenja

Imam jedan (glup) problem.

 

Dodana je klasa proizvod

 

namespace test
{
    class Proizvod
    {
        public string naziv;
        public double cijena;

        public string P_naziv
        {
            get { return naziv; }
            set { naziv = value; }
        }

        public double P_cijena
        {
            get { return cijena; }
            set { cijena = value; }
        }
    }
}

...


// ovo je sad program koji bi trebao nešto pospremit u klasu

Proizvod proizv = new Proizvod();      

proizv.P_naziv = tetxtbox1.Text;
proizv.P_cijena = Double.Parse(textbox2.Text);

 

Klasa uredno stoji prazna. Iz druge forme ne mogu ništa dobiti iz te klase sa npr. string naziv = proizv.P_naziv;

 

Di je problem? Pretpostavljam da je neka glupa sitnica jer ovo mora raditi i inače radi bez problema a sada ništa.

http://nighthawk-software.blogspot.com/
Poruka je uređivana zadnji put pon 16.7.2012 17:51 (Sum_of_all_fears).
Moj PC  
0 0 hvala 0
17 godina
offline
C# - Problemi i rješenja

Dakle, ti si u jednom projektu postavio dvije win forme i klasu Proizvod.

Zatim si instancirao klasu Proizvod u formi 1 i tu instancu klase bi prikazao u formi 2.

Kao prvo, da bi unio članove klase preko textboxova moraš postaviti event handler - dakle button u formi 1.

A da bi instancu klase iz forme 1 prenio u form 2 možeš upotrijebiti delegat.

 

Form 1:

namespace Proizvod
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        public delegate void Prijenos(Proizvod proizvod);

        private void button1_Click(object sender, EventArgs e)
        {
            Proizvod proizvod = new Proizvod();
            proizvod.Naziv = textBox1.Text;
            proizvod.Cijena = Double.Parse(textBox2.Text);
            Form2 form2 = new Form2();
            Prijenos prijenos = form2.PrijenosIzForma1;
            prijenos(proizvod);
            form2.Show();

        }

       
    }
}

 

 

Form 2 (prikazuje instancu klase Proizvod u labelima):


namespace Proizvod
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
        public void PrijenosIzForma1(Proizvod proizvod)
        {
            label1.Text = proizvod.Naziv;
            label2.Text = proizvod.Cijena.ToString();
        }
       
    }
}

 

 

Klasa Proizvod:

namespace Proizvod
{
    public class Proizvod
    {
        public string Naziv { get; set; }
        public double Cijena { get; set; }
    }
}

 

 

 

 

 
2 0 hvala 1
16 godina
neaktivan
offline
C# - Problemi i rješenja

Znači ovako, imam klasu nazvanu Posao koja kao svojstva ima sljedeće stvari:

 

public class Posao

{

public string ime;

public int zarada;

public List<Zadatak> listaZadataka;

}

(izostavio sam konstruktore i dio s enkapsulacijom radi čitljivosti)

 

 

Znači jedan string, jedan int i jedna lista tipa Zadatak, koji je posebna klasa:

 

public class Zadatak

{

public string  opis;

public int rednoBroj;

}

 

 

Moje pitanje bi bilo - je li ovo pravilan način da se napravi ovakvo što? Je li u redu da lista bude svojstvo klase? I zašto onda dovraga ne radi? {#}

Poruka je uređivana zadnji put uto 17.7.2012 22:59 (betmen).
 
0 0 hvala 0
14 godina
neaktivan
offline
C# - Problemi i rješenja

Error    1    The type or namespace name 'EnableVisualStyles' does not exist in the namespace 'Application' (are you missing an assembly reference?)    C:\Users\Slaven\documents\visual studio 2010\Projects\Address Book\Address Book\Program.cs    16    25    Address Book

Error    2    The type or namespace name 'SetCompatibleTextRenderingDefault' does not exist in the namespace 'Application' (are you missing an assembly reference?)    C:\Users\Slaven\documents\visual studio 2010\Projects\Address Book\Address Book\Program.cs    17    25    Address Book
Error    3    The type or namespace name 'Run' does not exist in the namespace 'Application' (are you missing an assembly reference?)    C:\Users\Slaven\documents\visual studio 2010\Projects\Address Book\Address Book\Program.cs    18    25    Address Book

 

Kako da rijesim ove greske?

Radio sam po

tutorialu ?

http://www.bug.hr/forum/topic/softver-literatura-usluge/prodaja-knjige-hardware/103166.aspx
 
0 0 hvala 0
17 godina
offline
Re: C# - Problemi i rješenja
betmen kaže...

Znači ovako, imam klasu nazvanu Posao koja kao svojstva ima sljedeće stvari:

 

 

 

 

Možeš koristiti listu kao podatkovni član klase, i isto tako kao T možeš imati tipove klase koju sam napraviš.

Međutim, da bi radilo, treba instancirati tu listu, a kod stavljanja elemenata u listu, ne zaboraviti da je svaki član liste instanca klase, dakle, treba ga instancirati.

Obrati pažnju na koncept koji sam primjenio, listu sam stavio pod private i readonly, dakle, nepromjenjiva je, a listu dodajem preko readonly svojstva (da, i to je moguće).

Još, nešto, umjesto fieldsa, ja sam upotrijebio automatske propertiese, koje mogu inicijalizirati u konstruktoru preko object initializera. 

 

Klasa Posao:

 

namespace Posao
{
    public class Posao
    {
        private readonly List<Zadatak> listaZadataka =
            new List<Zadatak>();

        public string Ime { get; set; }
        public int Zarada { get; set; }
        public List<Zadatak> ListaZadataka
        {
            get
            {
                return listaZadataka;
            }
        }
    }
}

 

 

Klasa Zadatak:

 

namespace Posao
{
    public class Zadatak
    {
        public Zadatak(string opis, int redniBroj)
        {
            Opis = opis;
            RedniBroj = redniBroj;
        }
        public string Opis { get; set; }
        public int RedniBroj { get; set; }
    }
}

 

 

Klasa Program:

 

namespace Posao
{
    class Program
    {
        static void Main(string[] args)
        {
            Posao popravakLaptopa = new Posao
            {
                Ime = "Laptop Asus",
                Zarada = 257
            };
            popravakLaptopa.ListaZadataka.Add(new Zadatak("otišla grafička", 125));
            popravakLaptopa.ListaZadataka.Add(new Zadatak("narudžba grafičke", 126));

            Console.WriteLine("Ime posla: {0}\nZarada: {1}\nLista zadataka:", popravakLaptopa.Ime, popravakLaptopa.Zarada);
            foreach (Zadatak zadatak in popravakLaptopa.ListaZadataka)
            {
                Console.WriteLine("{0}. {1}", zadatak.RedniBroj, zadatak.Opis);
            }
           

        }
    }
}

16 godina
neaktivan
offline
C# - Problemi i rješenja

Vau, svaka čast na ovom postu :O Ja sam sinoć pokušavao napraviti da proradi na onaj običan način sa listom kao svojstvom klase. Uspilo mi je, al je kod 3X kompliciraniji... Probati ću pojednostavniti sad sa ovim "automatskim svojstvima" (prvi put čujem za to iskreno).

 

Trebat će mi neko vrime da skužim cili post, al svejedno puno hvala :)

 
0 0 hvala 0
17 godina
offline
C# - Problemi i rješenja

Prednost automatskog svojsta je ta što ne trebaš podatkovni član, nego samo to svojstvo da bi spremio podatkovni član klase

 

class Test

{

      public int Val {get, set}

}

Međutim, ima i jedan nedostatak - automatska svojstva moraju imati i getter i setter, pa izlažeš interno stanje objekta vanjskom kodu.

 

 

Nekad trebaš dobro zaštititi interno stanje objekta, pa uzimaš drugi pristup - private readonly polje , a njegovo stanje u vanjskom kodu očitavaš

preko public običnog svojstva koje ima samo getter - dakle to readonly polje možeš preko konstruktora inicijalizirati, i više ga ne možeš mjenjati ni u klasi, 

ni u vanjskom kodu, a jedino ga možeš u vanjskom kodu očitati preko readonly običnog svojstva (koje ima samo getter)

 

class Test

{

      private readonly int val;

 

      public Test(int broj)

     {

          val = broj;

      }

 

      pubic int OcitajVal

      {

          get

         {

              return val;

          }

       }

 

}

A u ovom primjeru instanciranje vršiš na način:

 

Test myObject = new Test(5);

 

Dakle, sve ovisi što želiš postići u kodu koju ćeš metodu primjeniti.

 

A hvala ti lipa što si me nahvalio, ma nije to ništa, brzo čovik skuži ovu sintaksu{#}

Poruka je uređivana zadnji put sri 18.7.2012 19:09 (Floki).
 
0 0 hvala 1
16 godina
neaktivan
offline
C# - Problemi i rješenja

Upravo sam u program dodao opciju spremanja svih podataka u txt file, tako da se zapišu na sljedeći način:

 

(primjer je isti kao i u mom prošlom postu)

Popravak PC-a # 300 / Zamijeni grafu # 200 & Zamijeni RAM # 100

 

I onda pri čitanju fajla program razlomi ovu liniju metodom Split() i pretvori u odgovarajuće varijable:

 

Ime zadatka: Popravak PC-a

Cijena: 300

Što treba napraviti: Zamijeni grafu (200kn), Zamijeni RAM (100kn)

 

 

Moja pitanja:

- Je li ovo ok način za jednostavno spremanje podataka ili ima neki bolji? Jer ovaj mi se iskreno čini primitivan.

- Koju putanju staviti? Ja bi stavio nešto tipa C:/vjezba/savefile.txt jer se sad program izvršava samo na mom PC-u pa je svejedno, ali kako namjestiti da fajlovi koje program stvara budu u folderu u kojem je program instaliran?

 

Unaprijed hvala :)

 
0 0 hvala 0
16 godina
odjavljen
offline
Re: C# - Problemi i rješenja

Putanju za spremanje čitaj iz registriya ili ako mu ne zadaš putanju, tj. ostaviš ime fajla spremat će se u isti folder di je exe.

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

Isprike na double postu ali...

 

Zanima me jel moguće proslijediti podatke iz Form2 u Form1 bez ponovnog kreiranje Form1? Dakle, u ovom kodu:

 

Floki kaže...
...

           Form2 form2 = new Form2();
            Prijenos prijenos = form2.PrijenosIzForma1;
            prijenos(proizvod);
            form2.Show();

...

 

kako izbjeći ovaj označeni dio?

 

Stvar je u tome što form1 je glavna - u form2 se obavi neka radnja sa podacima iz form1 ali form1 mora ostati kakva je jer je popunjena podacima za ostale forme. Prenošenje iz jedne u drugu i rad sa klasama ide ok ali kad želim nešto iz form2 proslijediti kroz klasu u form1, ne želim kreirati novu instancu form1 - stara mora ostati.

 

Jel ima kakvo elegantno rješenje ili da jednostavno pospremim sve iz form1 u neki tmp file i na Close event od form2 nakačim neku metodu koja će ponovno popuniti form1 sa "starim" podacima i podacima iz klase?

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

Form1 ti ostaje kakva jest, ovdje je nanovo kreirana Form 2, međutim, ni nju ne moraš kreirati sad, nego možeš na početku kad i Form 1, a kad želiš prikazati Form 2 opali Show() na njenoj instanci.

 

A možeš eksplicitno prikazati i instancu Form1, zašto ne.

 


namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click_1(object sender, EventArgs e)
        {
            Form2 form2 = new Form2(this);
            form2.Show();
        }

    }
}

 

namespace WindowsFormsApplication1
{
    public partial class Form2 : Form
    {
        Form1 form1 = null;
        public Form2()
        {
            InitializeComponent();
        }
        public Form2(Form1 form1)
        {
            this.form1 = form1;
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.form1.label1.Text = "Živio";
        }
    }
}

 

 

Napraviš preopterećeni konstruktor forme koji prima kao argument instancu tekuće forme.

 

Poruka je uređivana zadnji put pon 23.7.2012 21:08 (Floki).
 
0 0 hvala 0
16 godina
odjavljen
offline
Re: C# - Problemi i rješenja

Nismo se razumjeli ;)

 

Imam form1 i form2. Kod pokretanja programa, pokazuje se form1. Klikom na gumb1, stvara se form2. Form2 stvara klasu koja se popuni nekim podacima iz Form2.

 

Ja sad želim te podatke vratiti u Form1 ali bez stvaranje nove form1 jer form1 sadrži neke podatke koji nisu spremljeni nigdje jer čekaju klasu iz form2 zajedno sa nekim drugim klasama sa podacima iz drugih formi.

 

Ukratko: form1 -> nova form2 -> obrada podataka, spremanje u klasu -> form2.Close -> form1 se popunjava podacima iz klase koja je nastala u form2

 

Ako opalim form1.Show u form2, napravi mi novu instancu form1 popunjenu sa podacima iz klase ali ostalih podataka koji bi trebali biti u form1 su izbrisani. A "stara" form1 čeka u pozadini.

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

a

Poruka je uređivana zadnji put sri 26.6.2013 3:46 (malamarya).
 
0 0 hvala 0
17 godina
offline
Re: C# - Problemi i rješenja
Sum_of_all_fears kaže...

           Form2 form2 = new Form2();
            Prijenos prijenos = form2.PrijenosIzForma1;
            prijenos(proizvod);
            form2.Show();

Možda ovako, ako sam te dobro shvatio...

Form2 form2 = (Form2)Application.OpenForms["Form2"];

Prijenos prijenos = form2.PrijenosIzForma1;
prijenos(proizvod);
form2.Show();

 

Edit: Pod ovim Form2 u prvom redu si ustvari mislio na Form1?

Karma is a funny thing.
Poruka je uređivana zadnji put uto 24.7.2012 13:25 (CikaSpaso).
Nova poruka
E-mail:
Lozinka:
 
vrh stranice