[ lan-mi @ 07.02.2011. 11:41 ] @
Izvinjavam se na ovom dužem uvodu. Kao prvo, želeo bih da napomenem da nisam profesionalac u programiranju jer mi to nije osnovni izvor prihoda, što me naravno ne sprečava da napišem koristan program, za sada isključivo u Delphi-ju. Kao što sam već ranije spomenuo, zadnja 3 meseca učim C# iz veoma praktičnih razloga, a to je da sam neke programe rađene u Delphiju u firmi u kojoj sam zaposlen (ne kao programer) mogao dobro da unovčim da su bili rađeni u nekoj Microsoftovoj NET platformi, sa detaljno dokumentovanim kodom. U pitanju je velika internacionalna firma gde sve počiva na Microsoftovoj tehnologiji, pa tako i razvoj programa. Za razliku od Delphija, koji sam učio u hodu, C# radim korak po korak da bi se detaljno upoznao šta može i na koji način da se uradi. To može da bude frustrirajuće, pošto učim neke stvari koje bi u Delphiju uradio iz glave dok u C# (za sada) to zahteva mnogo više vremena. Naravno, to sam i očekivao. Kao što je Boris ranije već spomenuo, ta zavisnost pravilnog rada C# programa ne samo od verzije windows-a nego i od instaliranog frameworka je za shareware i freeware desktop aplikacije, kakve sam uglavnom i radio, veliki minus. Ispravite me ako grešim, čak i program radjen u framework-u 2.0 neće raditi iako je instaliran samo framework 3.5 i 4. Za ovo kratko vreme u C#, dve stvari su mi zapale za oko: 1. Za razliku od C#, u Delphiju svaki event komponente je metod forme koja je parent komponente. Deklarisanjem forme u uses klauzoli drugih formi, ti eventi se lako mogu pozivati kao i menjati property-iji komponenti npr Caption-i labela, tekstovi u texboxovima itd., što ja u Delphiju veoma koristim. Kako u C# to najednostavnije uraditi? Pošto je jedan od tvoraca C# bivši Borlandov čovek, predpostavljam da je za takvu implementaciju imao debeo razlog. 2. Pokušao sam da pronađem komponentu u C# ekvivalentnu TAction u Delphi-u, tražio na net-u i izgleda da je stvarno nema, bar u VS2008. TAction je klasa koja ima dva eventa - OnExecute (vrši se neka radnja) in OnUpdate (enable-disable instance u zavisnosti od uslova). Dodeljivanjem reference u action property drugih komponenti u ObjectInspektoru-buttonu, menuitem, speedbutton..sve komponente će na OnClick metodu pozivati OnExecute metod akcije, a njhovi property-ji (caption, enabled, disabled)će biti apdejtovani u zavisnosti od uslova u OnUpdate metodi akcije. Ne znam da li sam bio jasan, ako na primer imam jedan mainmenu item, button na toolbaru i menuitem u popup meniju i svi treba da rade istu stvar, u delphi-ju je to lako povezati i sve će biti apdejtovane istovremeno. Kako to jednostavno odraditi u C#? |