Showing posts with label C# lessons. Show all posts
Showing posts with label C# lessons. Show all posts

Sunday, October 16, 2011

Windows Forms and the User Interface

         ඔන්න ඉතින් බොහෝම කාලෙකට පස්සේ මම ඔයාලට අද programming ගැන ලිපියක් ලියන්න තීරණය කලා.මම මේ Blog එක ලියන්න මුල පිරුවේ C# වලින්. ඔයාල මගෙ කලින් ලිපි කියවන්න ඇති කියල මම හිතනවා. මීට ඉහත ලිපි වලදි මම අවධානය යොමු කලේ Console Applications ගැනනේ.programing වලට කැමති ඔනම කෙනෙක් GUI application ගැන ඉගෙන ගන්න කැමතිනේ. ඉතින් මම අද ඉදල GUI Applications ගැන ලියන තීරණය කලා. හොදයි, අපි දැන් වැඩේට බහිමු.. 

මුලින්ම Microsoft visual studio 2008 open කරගන්න. දැන් File -> New -> Project වලට යන්න. දැන් ඔයාට පහල තියෙනව වගෙ Dialog Box එකක් open වෙයි. ඊට පස්සේ project types යටතේ ඇති Visual C# වලින් Windows select කරගන්න.ඊට පස්සේ project types යටතේ ඇති Visual C# වලින් Windows select කරගන්න. දැන් template යටතේ ඇති WindowsFormsApplication select කරගන්න. දැන් ඉතින් ඔයා කැමති නමක් දීල ok කරන්න.


දැන් ඉතින් තියෙන්නේ කැමති විදියට ඔයාගෙ window එකේ properties වෙනස් කරගන්න. මේ සඳහා ඔයාගේ Form එක උඩ click කරල form එක select කරගන්න. එවිට ඔයාගෙ main window එකේ දකුණු පැත්තෙ පහලින් form එකට අදාල properties බලාගන්න පුළුවන්.ඒ වගේම අවශ්‍ය විදියට properties වෙනස් කරගැනීමෙන් interface එකේ පෙනුම වෙනස් කරගන්න පුළුවන්.


Some Properties of the Form Class


Backcolor-   form එකේ background color වෙනස් කරගැනීම.
Cursor  - form එක මත cursor එක දිස් වන ආකාරය මෙයින් වෙනස් කරගත හැකිය.
BackgroundImage  - form එකට background image එකක් ලබාදීම.
Font - මෙමගින් ගැලපෙන පරිදි font වෙනස් කරගැනීම කරගත හැකිය.
FormBorderStyle - form border එක සහ title bar එකේ පෙනුම මෙමගින් දැක්වේ.
Icon - form එක නිරූපණය කිරීම සඳහා භාවිත කෙරෙන Icon මෙයින් දැක්වේ.
StartPosition - form එක දිස් වන ස්ථානය මෙයින් දැක් වේ.
Text - form එකේ text caption වෙනස් කරගත හැකිය.
Visible - form එක run වෙන අවස්ථාවේදී එහි visibility එක මෙයින් දැක් වේ.


              මම ඉහත දක්වල තියෙන්නෙ අපිට නිතරම අවශ්‍ය වෙන properties කීපයක්. මේ ආකාරයෙන් properties විශාල ප්‍රමාණයක් තියෙනවා. ඒවා එකින් එක වෙනස් කරල මොකද වෙන්නේ කියන දේ ගැන ඔයාට අවබෝධයක් ගන්න පුළුවන් වෙයි කියල මම හිතනවා. මූලිකවම මම අද ලියන්න අදහස් කලේ form එකක්  create කරගෙන එකේ properties වෙනස් කරගන්න ආකාරය පිලිබඳවයි. ඉදිරියේදි GUI application පිලිබඳව ගැබුරින් කතා කරන්න බලාපොරොත්තු වෙනවා.

Wednesday, April 6, 2011

User inputs…

මුලින්ම, මගේ blog එකේ article කියවල මාව දිරිමත් කරපු හැම යළුවෙක්ටම ස්තූති කරනවා. මමත් කලින් C# කරලා නෑ.ඉගන ගන්න ගමන් තමයි මේ විදියට article ලියන්නේ. ඔයාට මගෙ ලිපියකින් පුංචි හරි දැනුමක් අලුතින් එකතු කර ගන්න ලැබුන නන් මගෙ මහන්සියේ ප්‍රථිඵල තියෙනව කියල සතු‍ටු වෙන්න පුලුවන්. හරි මචං ඉවරයි... අපි දැන් වැඩේට බහිමු.
මම මේ lesson එකෙන් කියල දෙන්න බලාපොරොත්තු වෙන්නේ console එක මගින් user input එකක් ලබාගන්නේ කොහොමද කියන එක ගැනයි. අපි කලින් lesson එකෙන් ඉගෙන ගත්තනෙ command line argument එකක් handle කරගන්නේ කොහොමද කියල. එහිදී කේතය execute කරගන්න අවස්ථාවේදීමයි inputs ලබා දීම කරන්නේ. අපි දැන් බලමු කේතය run කර ගත්තට පස්සේ console එකෙන් input එකක් ලබාගන්නේ කොහොමද කියලා.





මේ වැඩේ කරගන්න තියෙන  පහසුම විදිය වෙන්නේ System namespace එකේ තියෙන Console.ReadLine කියන method එක. code එකකින්ම වැඩේ විස්තර කරන්නන්.
using System;
 
namespace keyboard_input
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("~~~~~Multiplication Table~~~~~\n");
            Console.Write("Enter a number:-");
            string line = Console.ReadLine(); // Read string from console
            int value;
            if (int.TryParse(line, out value)) // Try to parse the string as an integer
            {
                int i = 0;
                while (i <= 12)
                {
                    Console.WriteLine("\t"+i+"*"+value+"\t= {0}",value*i);
                    // Multiply the integer and display it
                    i++;
                }
            }
            else
            {
                Console.WriteLine("Not an integer!");
            }
            Console.ReadLine();
        }
    }
}
          මෙහිදී අපි ලබාදෙන input read කරගන්නේ මම කලින් සදහන් කරපු Console.ReadLine කියන method එකෙන්. මේ method එක call කලාම අපි ලබාදුන් inputs ඒකෙන් return කරනවා. මේ method එකෙන් return කරන්නේ string value එකක්. ඒ හින්දා user inputs යොදාගෙන මොකක් හරි arithmatic operation එකක් කරගන්න ඕනෙ නන් අපි මේ return වෙන value එක integer එකකට convert කරගන්න ඕන.

ඒ සදහා මම කලින් lesson එකේ පැහැදිලි කරපු Parse method එක යොදාගන්න පුලුවන්. එමගින් ඔයා ලබාදෙන input එක numeric value එකකට convert කරගන්න පුලුවන්.නමුත් මම මෙහිදී යොදාගෙන තියෙන්නේ TryParse කියන method එක.
ඒකට පොඩි හේතුවක් තියෙනව.ඔයා input එකක් විදියට string character එකක් ලබා දුන්නොත් Parse method එකෙන් ඒක convert කරන්න යනකොට අපේ වැඩසටහන crash වෙනව.ඒක නැති කරගන්න තමයි මම TryParse method එක යොදාගත්තෙ. 
TryParse method එකට අපි parameters දෙකක් දෙන්න ඕන.පලවෙනි parameter එක විදියට console input එක method එකට parse කරනව. ඒ argument එක numeric type එකකට convert කරගන්න බැරි නන් false return කරගන්න තමයි දෙවෙනි parameter එක දෙන්නේ. දැන් ඔයාට තේරුනානෙ 13 line එකේ මම කරල තියෙන දේ.
එතකොට අපේ code එක crash වෙන් නැතුව error එක handle කරගන්න පුළුවන්. අපි string character එකක් දුන්නොත් else statement එක run වෙනව.දැන් ඔයා දන්නවනේ .net වල keyboard inputs ගන්නේ කොහොමද කියලා. ඔයත් තනියම coding කරල බලන්න.  comment එකක් දාල යන්න අමතක කරන්න එපා...

Wednesday, March 16, 2011

What is Namespaces???



මගේ පලවෙනි ලිපිය කියවද්දිම ඔයාට මේ ප්‍රශ්නේ එන්න ඇති. "මොකද්ද මේ namespace කියන්නේ කියල". ඔයාගේ ඒ ප්‍රශ්නෙට උත්තරයක් විදියට තමයි මම මේ ලිපිය ලියන්න හිතුවේ.

C# වලදි ඔයාට Console කියන වචනේ අහන්න ලැබුනනේ. අපි මුලින්ම කතා කලෙත් Console Application ගැනනෙ. ඇත්තටම Console කියන්නේ class එකක්. ඒ class එකේ තියෙනව WriteLine කියල function එකක්. මේවට තමයි pre-defined classes හා functions කියන්නේ.C# වල pre-defined functions විශාල ගනණක් තියෙනවා. ghraphics create කරගන්න,disk එකට data write කරගන්න,output එකක් display කරගන්න අපි මේ functions යොදා ගන්නවා.

මේ විදියට තියෙන හැම function එකකම කාර්‍යය වෙන වෙනම මතක තියගන්න එක මිනිහෙක්ට කරන්න පුළුවන් දෙයක් නෙමෙයිනෙ...අන්න ඒ අවුල ලිහන්න Microsoft සමාගම කලේ screen එකට write කරගන්න එකට අදාල functions එක class එකකටත් graphics වලට අදාල functions තවත් class එකකටත් වශයෙන් functions ගොනු කිරීමයි. ඒ ගොනුව වල එකතුවකට තමයි namespace එකක් කියන්නේ. එතකොට හැම function එකකම කාර්‍යය මතක තියාගන්න ඕන නැහැ. අදාල ගොනුව(namespace) ගැන අවබෝධයක් තිබීම පමණක් ප්‍රමාණවත් වෙනවා.





දැන් මම namespace වල තියෙන අනිත් වාසිය පැහැදිලි කරන්නන්. මෙහෙම හිතන්නකෝ...අපි Console කියල class එකක් හදල ඒක ඇතුලේ WriteLine කියල අපේම function එකක් create කරනවා. එතකොට C# compiler එකට Console කියන class එකෙන් refer වෙන්නේ pre-defined class එකද අපි create කරපු class එකද කියල වෙන් කරල අදුන ගන්න බැහැනේ. මේකට කියන්නේ name clashes කියල.


ඒ නිසා Microsoft සමාගම කලේ classes ටික namespace එකකට අන්තර්ගත කරල එමගින් නිවැරදිව refer වෙන class වෙන් කර හදුනා ගැනීමයි. ඔයා visual studio වලින් new project එකක් create කරගත්තාම project එකේ නමින්ම defualt namespace එකක් create වෙනව කියල ඔයට දකින්න ලැබෙන්න ඇති. අන්න ඒ namespace එකේ තමයි අපේ classes අඩංගු වෙන්නේ.

පහත කේතය මගින් මේ namespace concept එක අවබෝධ කරගැනීමට උත්සාහගන්න. 





using System;

class test
{
    static void Main()
    {
        Console.Write("sameera.Console.WriteLine(2, 3) return ");
        Console.WriteLine(sameera.Console.WriteLine(2, 3));
        Console.Write("\n abc(); => ");
        abc();
        Console.Write("test.abc(); => ");
        test.abc();
    }
    public static void abc()
    {
        Console.WriteLine("pre-defined WriteLine function\n");
    }

}
namespace sameera
{

    class Console
    {

        public static int WriteLine(int a,int b)
        {

            return a + b;

        }

    }

}

Wednesday, March 9, 2011

Command Line Argument




හරි දැන් ඔයා දන්නවා console එකට output එකක් ගන්නේ කොහොමද කියන එක.අපි ඊලගට බලමු C# වල Command line argument එකක් මගින් input ගන්නේ කොහොමද කියන එක.

Sample code 




using System;

public class Hello3
{
   public static void Main(string[] args)
   {
      Console.WriteLine("You entered the following {0} command line arguments:", args.Length );   
      for (int i=0; i < args.Length; i++)
      {
         Console.WriteLine("args[{0}] = {1}", i, args[i]); 
      }
   }
}

            

                  අපේ කේතය ගැන දැන් මම පුංචි පැහැදිලි කිරීමක් කරන්නන්. මෙහි ඇති විෂේශත්වය වන්නේ කේතය run කරන අවස්ථාවේම ඊට input ලබාදීමයි.

line 5 :-
            අපේ Main method එකට args කියන string array එක pass කරල තියෙනවා. (Arrays ගැන ඉදිරියේදී විස්තරාත්මකව බලමු)අපි ලබාදෙන commandline arguments තියාගන්නේ මේ "args"කියන array එක තුලයි. args වෙනුවට අපිට කැමති නමක් දෙන්න පුළුවන්. නමුත් එය string type වීම අනිවාර්ය වේ. C# කියන්නේ case sensitive programing language එකක් කියන එකත් , මේ Array එකේ elemenets index වෙන්නේ බිංදුවේ සිට කියන එකත් මතක තියාගන්න.


Thursday, March 3, 2011

Hello World


              දැන් coding වලට යමු හෙමනන්... සාමාන්යන් ඔනෑම Programing language 1ක් හැදෑරීමේදී එහි පලමු පියවර වන්නේ "Helloworld" output එක ලබා ගැනීමයි. මෙය C# Development environment එක නිවැරදිව ස්ථාපනය වී ඇත්ද යන්න තහවුරු කර ගැනීමටද භාවිතා කල හැකිය.

               පහත උදාහරණයෙන් දැක්වෙන්නේ c# භාවිතයෙන් Helloworld වැඩසටහනක් නිර්මාණය කරගන්නේ කොහොමද කියන එකයි.

Introduction to Visual Studio


Programing Language එකක මූලිකම කාර්ය වෙන්නේ පරිගනක වැඩසටහන් නිර්මාණය කිරීමයි. පරිගනකයේ තිබෙන විවිධ මූලාශ්‍ර භාවිතයෙන් අපට උවමනා පරිදි වැඩසටහනක් නිර්මාණය කිරීම හා එම වැඩසටහන run කිරීමට අදාල විවිධ විධාන ලබාදීම පරිගනක ක්‍රමලේඛන භාශාවක් මගින් ඉටුවෙනවා. 

            ඉතින් ඔයාල කවුරුත් දන්නවනෙ වර්තමානයේ මේ ආකාරයේ  පරිගනක ක්‍රමලේඛන භාශා විශාල ගනණක් බිහිවෙල තියෙනව කියන එක. එක් එක් අවධි වල විවිධ ක්‍රමලේඛන භාශා මෘදුකාංග ලෝකයේ වැජභුණු බවත් ඔයලා දන්නවනේ...ඉතින් මම මේ ලිපි පෙලින් බලපොරොත්තු වෙන්නේ Microsoft සමාගම විසින් C++ හා Java වල තිබූ හොද ලක්ෂණ කැටි කර හදුන්වා දුන් C# පිලිබදව ඔයාලගේ දැනුමට අලුතින් යමක් එකතු කරන්නයි.

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Sameera Madushan | Bloggerized by Sameera - Premium Blogger Themes | Hosted Desktop