Old 04-11-2009, 07:34 AM
  post #1
အာ၀ူး
လမ္းေလွ်ာက္တတ္စ
 
အသင္း၀င္ေန႔စြဲ: Jan 2008
ေရးသားခ်က္မ်ား: 14
ႏိုင္ငံအလံ: Users Flag!
ေက်းဇူးတင္စကား: 14
ပို႔စ္ 7 ခုအတြက္ 38 ဦးမွ ေက်းဇူးတင္ေၾကာင္းေျပာပါသည္။
အာ၀ူး is on a distinguished road
C# Simple program

C# အေၾကာင္းေတြကုိ ေဆြးေႏြးဖုိ႔ ညီအစ္ကုိမ်ားကုိ ဖိတ္ေခၚပါရေစ။ ပထမဆုံး စီရွပ္နဲ႔ ေနာက္ေျပာင္တဲ့ ပ႐ုိဂရမ္ တစ္ပုဒ္ ဘယ္လုိေရးရမလဲဆုိတာ အလြယ္ဆုံးနည္းနဲ႔ ေလ့လာၾကရေအာင္ပါ...။ အားလုံးလည္း ျမင္ဖူးၾကမယ္ ထင္တယ္ က်ေနာ္ ေအာက္ကလင့္မွာ တင္ထားတာက Do you love me လို႔ ေရးထားၿပီး yes နဲ႔ no ခလုတ္ႏွစ္ခု ေပးထားတယ္ yes ကုိႏွိပ္မွ ရမယ္... no ကုိႏွိပ္ရင္ ခလုတ္က ပတ္ေျပးေနတဲ့ ပရုိဂရမ္ အေသးေလးပါ ဒီမွာ ေဒါင္းလုပ္ခ်ၿပီး ဖြင့္ၾကည့္လုိက္ပါ...။ ေအာက္မွာက ကုဒ္ေတြျပထားေပးပါတယ္ ႐ုိး႐ုိးရွင္းရွင္းေလးပါ စီရွပ္ကုိ နညး္နည္းပါးပါး နားလည္တဲ့သူေတြဆုိ ၾကည့္တာနဲ႔ သိႏုိင္ပါတယ္...။

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace love
{
public partial class chit : Form
{
public chit()
{
InitializeComponent();
Size = new Size(580, 200);
MinimizeBox = false;
MaximizeBox = false;
ControlBox = false;
FormBorderStyle = FormBorderStyle.FixedDialog;
no.Text = "No";
yes.Text = "Yes";

}


private void Love_Load(object sender, EventArgs e)
{
label1.Text = "I Love You So Much. Do You Love Me?";

}

private void no_MouseMove(object sender, MouseEventArgs e)
{
Random rand = new Random();
no.Location = new Point(rand.Next(530),rand.Next(140));
}

private void yes_Click(object sender, EventArgs e)
{
MessageBox.Show("Thanks you!");
this.Close();
}

private void chit_MouseLeave(object sender, EventArgs e)
{
no.Location = new Point(327, 103);
}
}
}

လက္ရွိပ႐ုိဂရမ္မွာ ဘာသုံးထားသလဲဆုိရင္ေတာ့ button ႏွစ္ခု နဲ႔ စာေရးဖုိ႔ label တစ္ခု သုံးထားတာပါ...။ button နဲ႔ label ေတြဆုိတာကေတာ့ Controls ေတြလုိ႔ ေခၚပါတယ္...။ Controls တုိင္းမွာ Events ေတြရွိၾကတယ္...။ ဥပမာ No button ကုိ ေမာက္စ္တင္လုိက္ရင္ ပတ္ေျပးေနရေအာင္ Mousemove ဆုိတဲ့ Event ကုိသုံးရပါတယ္...။ အဲဒီ Event ေအာက္မွာ x နဲ႔ y ေတြကုိ Random နဲ႔ ေျပာင္းထားလုိက္တာပါ...။ ၿပီးေတာ့ ေမာက္စ္က အျပင္ကုိေရာက္သြားရင္ ခလုတ္က သူ႔ေနရာကုိ ျပန္ေနေစဖုိ႔အတြက္ Mouseleave ဆုိတဲ့ Event ကုိသုံးရတာပါ...။ အေပၚက ကုဒ္ေလးေတြကုိ ၾကည့္ရင္ သေဘာေပါက္သြားပါလိမ့္မယ္...။ ေနာက္ထပ္ ပ႐ုိဂရမ္ေတြကိုလည္း အခ်ိန္အားရင္ အားသလို တင္ေပးသြားပါဦးမယ္...။ C# က Graphic User Interface ပါတဲ့အတြက္ အရမ္းကုိ သုံးရတာ လြယ္ကူတယ္...။C++ နဲ႔စာရင္ သူက စိတ္၀င္စားစရာလည္း ေကာင္းပါတယ္။ သူက class ေတြနဲ႔ အလုပ္လုပ္ပါတယ္...။ ၿပီးေတာ့ Input data ေတြအားလုံးကုိ string အေနနဲ႔ပဲ လက္ခံတယ္...။ Integer ကုိေျပာင္းခ်င္ရင္ေတာ့ Convert.ToInt16() ဆုိတဲ့ method နဲ႔သုံးရပါတယ္...။ ဂ်ားဗားနဲ႔လည္း ဆင္ပါတယ္...။ ေလ့လာၾကဖုိ႔ အၾကံေပးပါရေစ...။
lawimon

ေလာကၾကီးမွာ ရွင္သန္ေနထုိင္ဖုိ႔အတြက္ အေရးၾကီးဆုံးကေတာ့ အသက္႐ွဴဖုိ႔ပါပဲ....။:76:

Last edited by အာ၀ူး; 04-11-2009 at 10:18 AM..
အာ၀ူး is offline   Reply With Quote
ေအာက္ပါအသင္း၀င္ 10 ဦးတို႔မွ အာ၀ူး အား ေက်းဇူးတင္စကား ေျပာၾကားသြားပါသည္။
Old 04-11-2009, 10:17 PM
  post #2
အာ၀ူး
လမ္းေလွ်ာက္တတ္စ
 
အသင္း၀င္ေန႔စြဲ: Jan 2008
ေရးသားခ်က္မ်ား: 14
ႏိုင္ငံအလံ: Users Flag!
ေက်းဇူးတင္စကား: 14
ပို႔စ္ 7 ခုအတြက္ 38 ဦးမွ ေက်းဇူးတင္ေၾကာင္းေျပာပါသည္။
အာ၀ူး is on a distinguished road
ျပန္စာ - C# Simple program

Do you love me? ဆုိတဲ့ ပ႐ုိဂရမ္ကုိ ဆက္ၿပီးေဆြးေႏြးပါ့မယ္...။ စီရွပ္မွာ Form တစ္ခုကုိ Create လုပ္လုိက္ၿပီး ဆုိတာနဲ႔ သူ႔အတြက္ ကုဒ္ေတြကုိ Default ေပးထားပါတယ္...။ သူ႔ရဲ႕ မူရင္းကုဒ္ေတြကုိ သြားမဖ်က္မိဖုိ႔ အေရးၾကီးပါတယ္...။ form size ကုိ GUI မွာ ျပင္လုိ႔ ရသလုိ ကုဒ္နဲ႔ေရးၿပီးျပင္လည္းရပါတယ္...။ GUI မွာ ျပင္မယ္ဆုိရင္ေတာ့ Properties box မွာ size ဆုိတာကုိ ေျပာင္းေပး႐ုံပါပဲ ဒီနည္းအတုိင္းပါပဲ တျခား Button တုိ႔ textbox တုိ႔လို Controls တုိ႔ကုိလည္း Properties box မွာ သြားျပင္႐ုံပါပဲ...။ ကုဒ္နဲ႔ ျပင္မယ္ဆုိရင္ေတာ့
္this.Size = new size(10,10); ဆုိတာကုိ ထည့္႐ုံပါပဲ this ဆုိတာက Form ကုိရည္ညႊန္းတာပါ...။ Button ဆုိရင္ေတာ့ this ေနရာမွာ button name ကုိ ေျပာင္းလုိက္ရုံပါပဲ ဥပမာ Button1.Size = new Size(10,10); တျခား controls ေတြလည္း ဒီနည္းအတုိင္းပါပဲ...။ C# မွာေတာ့ Case sensitive ျဖစ္ပါတယ္...။ Form တစ္ခု လုပ္ၿပီးတဲ့ အခ်ိန္မွာ ကုိယ္ထည့္ခ်င္တဲ့ Button ေတြကုိ Toolbox မွာ သြားၿပီး Double Click လုပ္လုိက္႐ုံပါပဲ...။ Toolbox ကေန မသြားခ်င္ဘူးဆုိရင္ေတာ့ ကုဒ္ေတြနဲ႔လည္း ေရးလို႔ရပါတယ္ နည္းနည္း႐ႈပ္ေထြးပါလိမ့္မယ္...။ Button ကုိ ႏွိပ္လုိက္ရင္ေတာ့ သူ႔အတြက္ ကုဒ္ေရးရမဲ႔ေနရာကို Cursor ေရာက္သြားပါလိမ့္မယ္...။ ဥပမာ this.Close(); လုိ႔ေရးလုိက္မယ္ဆုိရင္ runtime မွာ အဲဒီ ခလုတ္ကုိ ႏွိပ္လုိက္တာနဲ႔ exit ျဖစ္သြားတဲ့ သေဘာပါ...။ အဲဒီေတာ့ က်ေနာ္ေရးထားတဲ့ ကုဒ္ေတြမွာ ControlBox = false ဆုိတာကေတာ့ Form ကုိ X (close) ဆုိတာကုိ ႏွိပ္ၿပီး ပိတ္လို႔မရေအာင္ ေရးထားတာပါ... တျခား minnimizebox = false တုိ႔ကလည္း ထုိနည္းလည္းေကာင္းပါပဲ...။ C++ မွာ Function လို႔ေခၚတဲ့ အရာေတြကုိ C# မွာက Method လုိ႔ ေခၚပါတယ္ Method ကေတာ့ ( ) နဲ႔ အျမဲတမ္းဆုံးရပါတယ္ ကြင္းထဲမွာ Parameters ထည့္လုိ႔ရပါတယ္...။ ဥပမာ this.Close() ဆုိတာကေတာ့ Close Method လို႔ေခၚပါတယ္...။ Method ေတြက Built-in ပါသလို user ကလည္း ကုိယ္ပုိင္ Method ကုိ ဖန္တီးလို႔ရပါတယ္...။ Class ဆုိတာက ဘာလဲဆုိရင္ အရွင္းဆုံးေျပာရရင္ Method ( function) နဲ႔ variables ေတြကုိ စုေပါင္းထားတဲ့ အစုအေ၀းကုိ ေခၚပါတယ္...။ ဒီေလာက္ဆုိရင္ေတာ့ အေျခခံေလးေတြကုိ သေဘာေပါက္ ၾကၿပီ ထင္ပါတယ္...။ ေနာက္ေန႔က်ရင္ Screen shot နဲ႔ ရွင္းျပပါ့မယ္...။ ၿပီးေတာ့ Timer ကုိသုံးၿပီးေတာ့ Animation လုပ္တဲ့နည္းေလးကုိလည္း ဆက္လက္ရွင္းျပပါဦးမယ္...။ က်ေနာ္ သုံးတဲ့ ေဆာ့ဖ္၀ဲလ္ကေတာ့ Microsoft Visual Studio 2005 ပါ...။

ေလာကၾကီးမွာ ရွင္သန္ေနထုိင္ဖုိ႔အတြက္ အေရးၾကီးဆုံးကေတာ့ အသက္႐ွဴဖုိ႔ပါပဲ....။:76:

Last edited by အာ၀ူး; 04-11-2009 at 10:18 PM..
အာ၀ူး is offline   Reply With Quote
ေအာက္ပါအသင္း၀င္ 7 ဦးတို႔မွ အာ၀ူး အား ေက်းဇူးတင္စကား ေျပာၾကားသြားပါသည္။
Old 11-11-2009, 12:35 AM
  post #3
အာ၀ူး
လမ္းေလွ်ာက္တတ္စ
 
အသင္း၀င္ေန႔စြဲ: Jan 2008
ေရးသားခ်က္မ်ား: 14
ႏိုင္ငံအလံ: Users Flag!
ေက်းဇူးတင္စကား: 14
ပို႔စ္ 7 ခုအတြက္ 38 ဦးမွ ေက်းဇူးတင္ေၾကာင္းေျပာပါသည္။
အာ၀ူး is on a distinguished road
ျပန္စာ - C# Simple program

Microsoft Visual Studio 2008 ကုိ Screen shot နဲ႔ ရွင္းျပပါ့မယ္...။ မသိေသးတဲ့သူေတြအတြက္ပါ ေအာက္မွာက်ေနာ္ ပုံထည့္ေပးထားပါတယ္...။
က်ေနာ္ အနီနဲ႔ ေဘာင္ခတ္ထားတဲ့ ဟာေတြကုိ ရွင္းျပပါ့မယ္...။ ဘယ္ဘက္မွာ Toolbox ဆုိတာကေတာ့ Form ထဲကုိ ထည့္ခ်င္တဲ့ Control ေတြကုိ အဲဒီကေန ယူရတာပါ...။ အလယ္မွာက Form နဲ႔ အျပာေရာင္ Background ကေတာ့ Picturebox ပါ သူလည္း Toolbox ကေန ယူထားတာပါ...။ Form မွာက ခလုတ္ႏွစ္ခု ထည့္ထားပါတယ္..။ညာဖက္ေအာက္မွာေတာ့ properties box ရွိပါတယ္ အနီေဘာင္ခတ္ထားတဲ့ မုိးၾကဳိးသြားပုံနဲ႔က Events လို႔ေခၚပါတယ္ သက္ဆုိင္တဲ့ Control ေတြကုိႏွိပ္ၿပီး Events ခလုတ္ကုိ ႏွိပ္လုိက္ရင္ သူမွာ ရွိတဲ့ Events list ေတြ အကုန္လုံးေပၚလာပါလိမ့္မယ္...။ Control ေတြမွာ Name ဆုိတဲ့ Property က အဲဒီကြန္ထရုိးကုိကုိယ္စား ျပဳၿပီးေတာ့ Text ဆုိတာကေတာ့ အဲဒီ ကြန္ထရုိးေပၚမွာ ေပၚေစခ်င္တဲ့ စာသားကုိ ေရးရတာပါ...။ Name မွာ Space ျခားလုိ႔မရဘူး Text မွာေတာ့ Space ျခားလို႔ရပါတယ္...။

ေလာကၾကီးမွာ ရွင္သန္ေနထုိင္ဖုိ႔အတြက္ အေရးၾကီးဆုံးကေတာ့ အသက္႐ွဴဖုိ႔ပါပဲ....။:76:
အာ၀ူး is offline   Reply With Quote
ေအာက္ပါအသင္း၀င္ 6 ဦးတို႔မွ အာ၀ူး အား ေက်းဇူးတင္စကား ေျပာၾကားသြားပါသည္။
Old 21-11-2009, 04:46 AM
  post #4
အာ၀ူး
လမ္းေလွ်ာက္တတ္စ
 
အသင္း၀င္ေန႔စြဲ: Jan 2008
ေရးသားခ်က္မ်ား: 14
ႏိုင္ငံအလံ: Users Flag!
ေက်းဇူးတင္စကား: 14
ပို႔စ္ 7 ခုအတြက္ 38 ဦးမွ ေက်းဇူးတင္ေၾကာင္းေျပာပါသည္။
အာ၀ူး is on a distinguished road
ျပန္စာ - C# Simple program

ဒီတစ္ခါေတာ့ က်ေနာ္တုိ႔ စီရွပ္မွာ Timer control ကုိ အသုံးျပဳၿပီးေတာ့ Animation လုပ္နည္းေလးကုိ ေလ့လာၾကည့္ရ ေအာင္ပါ...။ဒီမွာ ဖုိင္ေလး ေဒါင္းလုပ္ခ်လိုက္ၾကပါ...။ ကုဒ္ကေတာ့ ေအာက္မွာ ရွင္းျပ ေပးပါ့မယ္...။

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace animation
{
public partial class form : Form
{
private int x=200 , y=200;
public form()
{
InitializeComponent();
MaximizeBox = false;
timer1.Enabled = false;
Size = new Size(400, 500);
}

private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawRectangle(Pens.Green, x,y,20,20);
g.FillRectangle(Brushes.Green, x,y,20,20);
g.DrawRectangle(Pens.Red, 50,50,20,20);
g.FillRectangle(Brushes.Red, 50,50,20,20);

}

private void timer1_Tick(object sender, EventArgs e)
{
x -= 5;
y -= 5;
Invalidate();
if (x == 50) timer1.Enabled = false;

}

private void form_MouseClick(object sender, MouseEventArgs e)
{
timer1.Enabled=true;
}
}
}

ကုဒ္ေလးေတြက ႐ုိး႐ုိးေလးေတြပါပဲ...။ လုပ္နည္းအေျခခံကုိပဲ ရွင္းျပေပးထားတာပါ...။ ပထမဆုံး ပ႐ုိဂရမ္တစ္ပုဒ္ ေရးမယ္ဆုိေတာ့ လိုအပ္တဲ့ Name space ေတြကုိ Using နဲ႔ ေၾကျငာရပါတယ္...။ ဒီပရုိဂရမ္အတြက္ကေတာ့ သူေပးထားတဲ့ Default namespace နဲ႔တင္ လုံေလာက္ပါတယ္ ထပ္ၿပီးေၾကျငာစရာမလုိပါဘူး...။ အေပၚကေန ၾကည့္ရေအာင္ Form class ေအာက္မွာက form အရြယ္အစားတုိ႔ ၿပီးေတာ့ timer ကုိ ပိတ္တာတုိ႔ လုပ္ထားတယ္... ဒါကေတာ့ ကုိယ္စိတ္ရွိသလုိလုပ္ႏုိင္ပါတယ္ ေထြေထြထူးထူးမဟုတ္ပါဘူး...။ ၿပီးေတာ့ လာၿပီ Form အတြက္ Paint event. ဘာျဖစ္လို႔ Paint event ကုိသုံးရတာလဲဆုိေတာ့ က်ေနာ္တုိ႔က ပုံဆြဲမလို႔ပါ အဲဒါေၾကာင့္ အဲဒီ အီးဗန္း နဲ႔ဆြဲမွ ရမွာမုိ႔လို႔ပါ...။ Event တုိင္းမွာ Eventhander e ဆုိတာ ရွိတယ္ e ဆုိတာကေတာ့ အဲဒီ Event ကုိ ကုိယ္စားျပဳတာပါ... form ကုိ this နဲ႔ ကုိယ္စားျပဳထားသလုိမ်ဳိး...။ အဲဒီေတာ့ က်ေနာ္တုိ႔က ပုံဆြဲဖုိ႔အတြက္ graphic variable တစ္ခု ဖန္တီးလိုက္တယ္ အဲဒီ variable နဲ႔ form graphic နဲ႔ ညီလုိက္ေတာ့ form မွာ ဆြဲဖုိ႔ variable ျဖစ္သြားေရာ...။ အဲဒီေတာ့ DrawRectangle(pen,x,y,high,width) ဆုိတဲ့ Method နဲ႔သုံးၿပီး ဆြဲလုိက္တယ္ အနီနဲ႔ အစိမ္းနဲ႔ ႏွစ္ခုပါ FillRectangle(); ဆုိတာကေတာ့ ဆြဲထားတဲ့ Rectangle ေတြကုိ အေရာင္ျဖည့္တာပါ...။ ေနာက္ ေအာက္မွာက timer event ကုိ ေရးထားတာပါ...။ Timer မွာကေတာ့ Tick() ဆုိတဲ့ Event တစ္ခုတည္းရွိတာပါ...။ ပထဆုံး timer ကုိ Form မွာ စၿပီး အပ္ထားကတည္းက timer အတြက္ interval ဆုိတာကုိ သတ္မွတ္ေပးရတယ္ မီလီစကၠန္႔နဲ႔ 1000 လို႔ေပးထားရင္ေတာ့ တစ္စကၠန္႔မွာ တစ္ခါလုပ္တယ္...။ ဒီေတာ့ ေရးထားတာကေတာ့ x နဲ႔ y ကုိ timer တစ္ခ်က္ အလုပ္လုပ္တုိင္းမွာ ၅ နဲ႔ ႏွဳတ္ႏွဳတ္သြားပါတယ္...။ ၿပီးေတာ့ အနီေကာင္နဲ႔ ေတြ႔ရင္ ရပ္လုိ႔ေျပာလုိက္တာ...။ ေနာက္ဆုံး Event ကေတာ့ ပ႐ုိဂရမ္ကုိ Run လိုက္တဲ့အခ်ိန္မွာ form ကုိ ေမာက္စ္နဲ႔ တစ္ခါကလစ္ၿပီးမွ တုိင္မာကုိ အလုပ္လုပ္ခုိင္းတာ ဘာျဖစ္လုိ႔လဲဆုိေတာ့ အေပၚမွာ က်ေနာ္တုိ႔ တုိင္မာကုိ ပိတ္ထားလို႕ပါ...။ အဲဒီ event မေရးဘူးဆုိရင္ေတာ့ အေပၚက တုိင္မာကုိ ပိတ္ထားတဲ့ ေနရာက false ေနရာကုိ true ေျပာင္းရပါလိမ့္မယ္...။ ဒီေလာက္ဆုိရင္ လုပ္နည္း အေျခခံကုိ သေဘာေပါက္ၾကၿပီထင္ပါတယ္...။ ဒီေတာ့ တုိင္မာနဲ႔ ပတ္သတ္ၿပီး ဘယ္လို ေရြ႕ရသလဲဆုိေတာ့ သိေလာက္ၿပီးေပါ့...။ ေမ့လုိ႔ အေရးၾကီးဆုံး
Invalidate(); ဆုိတာက အေရးၾကီးတယ္ Form ကုိ ႏွဳတ္ၿပီးသား တန္ဖုိးေတြနဲ႔ repaint ျပန္လုပ္ခုိင္းတာပါ အဲဒီ ေကာင္ မပါရင္ေတာ့ Rectangle က ေရႊ႕မွာ မဟုတ္ဘူး...။ အေျခခံေလာက္ရွင္းျပထားတာပါ...။ Linear Equation ေတြန႔ဲ သုံးၿပီးေတာ့ ကုိယ္ၾကဳိက္သလို ေရြ႕ႏုိင္ပါတယ္...။ အခုကေတာ့ x နဲ႔ y ကုိ ႏွဳတ္ႏွဳတ္ၿပီး animation လုပ္သြားတဲ့ ပုံစံေလးပါ...။ အဆင္ေျပၾကပါေစဗ်ား...။

ေလာကၾကီးမွာ ရွင္သန္ေနထုိင္ဖုိ႔အတြက္ အေရးၾကီးဆုံးကေတာ့ အသက္႐ွဴဖုိ႔ပါပဲ....။:76:
အာ၀ူး is offline   Reply With Quote
ေအာက္ပါအသင္း၀င္ 7 ဦးတို႔မွ အာ၀ူး အား ေက်းဇူးတင္စကား ေျပာၾကားသြားပါသည္။
Old 02-12-2009, 01:26 PM
  post #5
ခင္ေမာင္ထြန္း
ကိုယ္ပိုင္အစြမ္းရွိၿပီးသူ
 
အသင္း၀င္ေန႔စြဲ: Jan 2009
ေရးသားခ်က္မ်ား: 291
ႏိုင္ငံအလံ: Users Flag!
ေက်းဇူးတင္စကား: 139
ပို႔စ္ 156 ခုအတြက္ 389 ဦးမွ ေက်းဇူးတင္ေၾကာင္းေျပာပါသည္။
ခင္ေမာင္ထြန္း is on a distinguished road
ျပန္စာ - C# Simple program

အစ္ကိုေရသင္ခန္းစာေလးကိုဆက္ပါဦးဗ်ာ.ေ၀မွ်ပါဦး.......ေလးစားလွ်က္ပါ...................
ခင္ေမာင္ထြန္း is offline   Reply With Quote
Old 21-12-2009, 04:05 PM
  post #6
ယုဇနေမာင္
ႀကီးေကာင္၀င္စ
 
အသင္း၀င္ေန႔စြဲ: Aug 2008
ေရးသားခ်က္မ်ား: 100
ေက်းဇူးတင္စကား: 39
ပို႔စ္ 44 ခုအတြက္ 117 ဦးမွ ေက်းဇူးတင္ေၾကာင္းေျပာပါသည္။
ပံုမ်ား: 1
ယုဇနေမာင္ is on a distinguished road
ျပန္စာ - C# Simple program

Quote:
Originally Posted by ခင္ေမာင္ထြန္း View Post
အစ္ကိုေရသင္ခန္းစာေလးကိုဆက္ပါဦးဗ်ာ.ေ၀မွ်ပါဦး.......ေလးစားလွ်က္ပါ...................
သူမ်ားကိုခ်ည္းပဲ မေရးခိုင္းနဲ့ေလ ေမာင္ေလးရဲ႕ ကုိယ္တိုင္လဲ ေရးျပီးတင္လိုက္ပါအံုး။

[COLOR="Red"][B][U]လူ႕ေလာကၾကီးဟာ ကိုယ္တစ္ေယာက္ထဲအတြက္ စိတ္တိုင္းက် ဖန္တီးထားတာမဟုတ္ဘူး။[/U][/B][/COLOR]
ယုဇနေမာင္ is offline   Reply With Quote
Old 21-12-2009, 04:18 PM
  post #7
ခင္ေမာင္ထြန္း
ကိုယ္ပိုင္အစြမ္းရွိၿပီးသူ
 
အသင္း၀င္ေန႔စြဲ: Jan 2009
ေရးသားခ်က္မ်ား: 291
ႏိုင္ငံအလံ: Users Flag!
ေက်းဇူးတင္စကား: 139
ပို႔စ္ 156 ခုအတြက္ 389 ဦးမွ ေက်းဇူးတင္ေၾကာင္းေျပာပါသည္။
ခင္ေမာင္ထြန္း is on a distinguished road
ျပန္စာ - C# Simple program

Quote:
Originally Posted by ယုဇနေမာင္ View Post
သူမ်ားကိုခ်ည္းပဲ မေရးခိုင္းနဲ့ေလ ေမာင္ေလးရဲ႕ ကုိယ္တိုင္လဲ ေရးျပီးတင္လိုက္ပါအံုး။
ေရးေပးခ်င္ပါတယ္ဗ်ာအစ္မေရ...
ရုံးမွာေရးလို႔မရဘူးေလ....အစ္မလည္းသိသားနဲ႔ အခုအက္ဒမင္ကႏွစ္ေယာက္ျဖစ္သြားျပီဗ်....
ခင္ေမာင္ထြန္း is offline   Reply With Quote
Old 21-12-2009, 07:38 PM
  post #8
အာ၀ူး
လမ္းေလွ်ာက္တတ္စ
 
အသင္း၀င္ေန႔စြဲ: Jan 2008
ေရးသားခ်က္မ်ား: 14
ႏိုင္ငံအလံ: Users Flag!
ေက်းဇူးတင္စကား: 14
ပို႔စ္ 7 ခုအတြက္ 38 ဦးမွ ေက်းဇူးတင္ေၾကာင္းေျပာပါသည္။
အာ၀ူး is on a distinguished road
ျပန္စာ - C# Simple program

ေဆာရီးဗ်ာ... က်ေနာ္ အလုပ္ေတြ နည္းနည္း႐ႈပ္သြားခဲ့တယ္...။ က်ေနာ့္ စီရွပ္ သင္ခန္းစာကုိ စိတ္၀င္စားၾကလုိ႔ အတိုင္းမသိ ၀မ္းသာပါတယ္...။ ဒီေန႔ text file ထဲကေန Int ေတြကုိ ဘယ္လုိ ဖတ္ရမလဲဆုိတာ ေဆြးေႏြးၾက ရေအာင္ပါ...။ က်ေနာ္တုိ႔ C++ မွာဆုိရင္ text file ဖတ္တာက fscanf(F,"%d %d",&x,&y) c++ မွာ coordinates ေတြကုိ ဖတ္ရင္ အဲဒီလုိ template ရွိေပမဲ့ စီရွပ္မွာက အဲဒီလို တန္းပလိတ္မ်ဳိးမပါဘူး...။ အဲဒီအခါက် ေတာ့ text file ထဲမွာ Int ေတြကုိ C# မွာ ဖတ္မယ္ဆုိရင္ စီရွပ္က အဲဒီ Int ေတြကုိ string အေနနဲ႔ပဲ သိပါတယ္...။ ဆုိပါစုိ႔ ေျမပုံတစ္ခုခုကုိ ဆြဲဖုိ႔အတြက္ ေျမပုံရဲ႕ coordinates ေတြကုိ text ဖုိင္မွာ ဖတ္ၿပီး ထုတ္ခ်င္တယ္အခါမွာ C# က x y ကုိ စာေၾကာင္းအေနနဲ႔ပဲသိေတာ့ အဆင္မေျပဘူး...။ ျပႆနာက C# က string အေနနဲ႔ပဲသိတဲ့ x y ေတြကုိ Int ျဖစ္ေအာင္ ျပန္ေျပာင္းမွပဲ ပုံေတြဆြဲလုိ႔ရမယ္... ဒီေနရာမွာ ေျပာခ်င္တာက computer မွာ coordinate ေတြက တကယ့္အျပင္က က်ေနာ္တုိ႔တြက္ခဲ့တဲ့ coordinate ေတြနဲ႔ Y က ေျပာင္းျပန္ျဖစ္ေနတယ္... ကြန္ပ်ဴတာမွာက ေအာက္ကုိဆင္းေလ Y တန္ဖုိးက မ်ားေလ လက္ေတြ႔မွာကေအာက္ဆင္းေလ Y တန္ဖုိးက နည္းေလ သေဘာေပါက္မယ္ထင္ပါတယ္...။ အဲဒီေတာ့ C# က ဖတ္လိုက္တဲ့ XY ေတြကုိ string ကေန Int ကို ဘယ္လုိ ေျပာင္းမလဲ ဒါက အခုေရးတဲ့ သင္ခန္းစာရဲ႕ ျပႆနာပါ... သိတယ္ဆုိရင္ လြယ္လြယ္ေလးဆုိေပမဲ့ မသိေသးခင္ အခ်ိန္က က်ေနာ္ တစ္လနီးပါးေလာက္ကုိ ၾကည့္ခဲ့ရတာပါ အ႐ိုးသားဆုံး၀န္ခံတာ...။
StreamReader target = new StreamReader("Targets.txt")
က်ေနာ္တုိ႔ ဖုိင္ကုိ ဖတ္ဖုိ႔အတြက္ ေၾကျငာလုိက္ၿပီ StreamReader ဆိုတဲ့ method ကုိ သုံးဖုိ႔ က်ေနာ္တုိ႔ Using System.IO ဆုိတဲ့ Namespace ကုိေၾကျငာေပးရပါလိမ့္မယ္...။ က်ေနာ္တုိ႔ ဖတ္မဲ့ဖုိင္နာမည္က Target.txt ပါ ဖုိင္ရ႕ဲတည္ေနရာက ပ႐ုိဂရမ္ရဲ႕ Debug ဖုိဒါမွာပဲ ရွိတာမုိ႔လုိ႔ ဖုိင္နာမည္ကုိပဲ ေရးလုိက္တာပါ တကယ္လို႔ က်ေနာ္တုိ႔ ဖတ္မဲ့ဖုိင္က တျခားေနရာမွာဆုိရင္ေတာ့ ("@C:\Target.txt") အဲဒီလုိမ်ဳိး ေနရာကုိ ထည့္ေျပာေပးရပါတယ္... အၾကံေပးခ်င္တာက debug ဖုိဒါေအာက္မွာပဲ သြားထည့္ထားလိုက္ရင္ ပုိၿပီးအဆင္ေျပမွာပါ...။ က်ေနာ္တုိ႔ ဖုိင္ကုိ ဖတ္ဖုိ႔ ေၾကျငာလုိက္ပါၿပီ target ဖုိင္ထဲမွာ X Y ေတြရွိတယ္ ဥပမာ
120 130
45 62
27 89
အဲဒီလို မ်ဳိးေတြ ရွိေနတာ x y ေပါ့ဗ်ာ...။ စၿပီး ဖတ္ခုိင္းရေအာင္...။
List<int> result = new List<int>();
for (int t = 0; t < 6; t++)
{
string tget;
tget = target.ReadLine();
if (!string.IsNullOrEmpty(tget))
{
string[] c = tget.Split(' ');
for (int t1 = 0; t1 < c.Length; t1++)
{
result.Add(Convert.ToInt16(c[t1]));

}
}
}
for loop တစ္ခု ပတ္လုိက္တယ္ t< 6 ဆုိတာက ဖုိင္မွာ x y စာေၾကာင္း ၇ ေၾကာင္းပါလုိ႔...။ အဲဒီေတာ့ tget string တစ္ခုကုိ ေၾကျငာၿပီး target က x y ေတြကုိ ReadLine() နဲ႔ဖတ္ၿပီးေတာ့ string ထဲကုိ ထည့္လိုက္တယ္ x y က Int ဆုိေပမဲ့ string အေနနဲ႔ပဲ ျမင္တယ္ေလ...။ ေအာက္ကုိ ဆက္ၾကည့္ရေအာင္
if (!string.IsNullOrEmpty(tget)). tget ထဲမွာ ေဒတာေတြ မကုန္မခ်င္းလုပ္မယ္
string[] c = tget.Split(' ');
for (int t1 = 0; t1 < c.Length; t1++)
{
result.Add(Convert.ToInt16(c[t1]));

}
c ဆုိတဲ့ string တစ္ခု ထပ္ေၾကျငာပါတယ္ tget မွာ ရွိေနတဲ့ x y ေတြကုိ Split(' ') ဆုိတာက space bar နဲ႔ခြဲၿပီး တစ္လုံးခ်င္းထည့္လိုက္တယ္ အဲဒီေတာ့ စာေၾကာင္းကေန စာလုံးျဖစ္သြားၿပီ...။ ၿပီးေတာ့ loop ပတ္တယ္ c ရဲ႕ အလ်ားအတုိင္းဖတ္တယ္ ၿပီးေတာ့ အဲဒီ c ထဲမွာ ရွိတဲ့ စာလုံးတစ္လုံးခ်င္းကုိ Int ေျပာင္းလုိက္ရင္ x နဲ႔ y ေတြက သီးျခားျဖစ္တဲ့ Int ေတြ ရသြားပါၿပီး ကုဒ္ေတြကုိ ၾကည့္ၿပီး ကုိယ္တုိင္ေရးၾကည့္ရင္ ပုိရွင္းပါလိမ့္မယ္...။ ဒီေနရာမွာ result.Add(Convert.ToInt16(c[t1])); ဆုိတာက result ဆုိတာ ဘာလဲေမးစရာရွိပါတယ္...။ result ဆုိတာက array လုိမ်ဳိး စီရွပ္မွာပါတဲ့ List တစ္ခုပါ...။ အေပၚမွာ က်ေနာ္ေၾကျငာထားပါတယ္ အဲဒီ list ထဲကုိ ေျပာင္းလို႔ရတဲ့ ကိန္းေတြ အားလုံးကုိ ထည့္လုိက္တာပါ...။ List ကုိသုံးဖုိ႔ Using System.Collection.Generic နဲ႔ Using System.Collection ကုိေၾကျငာေပးရပါတယ္...။ ဟုတ္ၿပီ က်ေနာ္တုိ႔
result list ထဲမွာ x y ေတြ အားလုံးက Array အေနနဲ႔ ေရာက္သြားၿပီ...။ အဲဒီ list ကုိ loop ပတ္ၿပီး x y ရွိတဲ့ ေနရာကုိ pixel ထည့္လုိက္ခ်င္းအားျဖင့္ ကုိယ္လိုခ်င္တဲ့ပုံ ထြက္လာမွာျဖစ္ပါတယ္...။ အဆင္ေျပၾကပါေစဗ်ား...။

ေလာကၾကီးမွာ ရွင္သန္ေနထုိင္ဖုိ႔အတြက္ အေရးၾကီးဆုံးကေတာ့ အသက္႐ွဴဖုိ႔ပါပဲ....။:76:
အာ၀ူး is offline   Reply With Quote
ေအာက္ပါအသင္း၀င္ 5 ဦးတို႔မွ အာ၀ူး အား ေက်းဇူးတင္စကား ေျပာၾကားသြားပါသည္။
Old 21-02-2010, 04:13 AM
  post #9
Tayzakoko
ကေလးေပါက္စ
 
အသင္း၀င္ေန႔စြဲ: Aug 2009
ေရးသားခ်က္မ်ား: 37
ႏိုင္ငံအလံ: Users Flag!
ေက်းဇူးတင္စကား: 0
ပို႔စ္ 16 ခုအတြက္ 32 ဦးမွ ေက်းဇူးတင္ေၾကာင္းေျပာပါသည္။
Tayzakoko is on a distinguished road
ျပန္စာ - C# Simple program

အစ္ကိုေရ ဆက္ေရးေပးပါအံုးဗ်ာ
က်ေနာ္တို႔က အားေပးေနတာဗ်
အစ္ကုိေရးတာေတြ စိတ္၀င္စားဖို႔ေကာင္းပါတရ္
Tayzakoko is offline   Reply With Quote
Old 02-01-2013, 02:09 PM
sabaikyi
ေမြးကင္းစကေလး
 
အသင္း၀င္ေန႔စြဲ: Dec 2012
ေရးသားခ်က္မ်ား: 1
ႏိုင္ငံအလံ: Users Flag!
ေက်းဇူးတင္စကား: 0
ပို႔စ္ 0 ခုအတြက္ 0 ဦးမွ ေက်းဇူးတင္ေၾကာင္းေျပာပါသည္။
sabaikyi is on a distinguished road
ျပန္စာ - C# Simple program

Window Base ရွင္းၿပေနတာကိုး..။ ကၽြန္ေတာ္က Web Base မွတ္လို႔ new Website နဲ႔စမ္းေနတာ..။
sabaikyi is offline   Reply With Quote
Old 29-01-2014, 12:04 AM
လင္းထြန္းခန္႔
ေမြးကင္းစကေလး
 
အသင္း၀င္ေန႔စြဲ: Jan 2014
ေရးသားခ်က္မ်ား: 1
ႏိုင္ငံအလံ: Users Flag!
ေက်းဇူးတင္စကား: 0
ပို႔စ္ 1 ခုအတြက္ 1 ဦးမွ ေက်းဇူးတင္ေၾကာင္းေျပာပါသည္။
လင္းထြန္းခန္႔ is on a distinguished road
ျပန္စာ - C# Simple program

အကုိေရ ... ဖတ္ရတာသိပ္ေကာင္းပါတယ္။ windows form မွာ ျမန္မာဂဏာန္းေတြ ေပါင္း၊ ႏႈတ္၊ ေျမွာက္၊ စားလုပ္ခ်င္တာ ဘယ္လုိမ်ိဳးေရးလုိ႔ရႏုိင္သလဲဆုိတာလည္း သိခ်င္ပါတယ္။ ကူညီမယ္လုိ႔ ေမွ်ာ္လင့္မိပါတယ္။
လင္းထြန္းခန္႔ is offline   Reply With Quote
ေအာက္ပါအသင္း၀င္မွ လင္းထြန္းခန္႔ အား ေက်းဇူးတင္စကား ေျပာၾကားသြားပါသည္။
Old 01-05-2015, 03:26 PM
bobolay
ေမြးကင္းစကေလး
 
အသင္း၀င္ေန႔စြဲ: Apr 2015
ေရးသားခ်က္မ်ား: 1
ႏိုင္ငံအလံ: Users Flag!
ေက်းဇူးတင္စကား: 2
ပို႔စ္ 1 ခုအတြက္ 1 ဦးမွ ေက်းဇူးတင္ေၾကာင္းေျပာပါသည္။
bobolay is on a distinguished road
ျပန္စာ - C# Simple program

C# အ​ေၾကာင္​းဆို ဘာပဲ​ေရး​ေရးအကုန္​စိတ္​ဝင္​စားတယ္​ဗ်ာ
​ေရးသားသူမ်ားကိုအထူးအထူး​ေက်းဇူးတင္​ရွိပါတယ္​::)
ထပ္​လည္​း​ေရး​ေပးပါအံုး :):):)
bobolay is offline   Reply With Quote
ေအာက္ပါအသင္း၀င္မွ bobolay အား ေက်းဇူးတင္စကား ေျပာၾကားသြားပါသည္။
Reply

တန္ဆာပလာမ်ား
ေဖာ္ျပမႈပံုစံ

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

ဖိုရမ္ေတြ ေက်ာ္ေရာက္ခ်င္ရင္ !

အျခားဆင္တူေဆြးေႏြးခ်က္မ်ား
ေဆြးေႏြးခ်က္ စတင္ေရးသားသူ ကြပ္ပ်စ္၀ိုင္း ျပန္စာမ်ား ေနာက္ဆံုးပို႔စ္
Terminology and Definition in C++ green leaf ေဆြးေႏြးခ်က္မ်ား 4 04-12-2011 12:38 AM
program ရဲ႕ အျမန္ႏွဳံးကိုျမင့္တင္ျခင္း shadeboy ကြန္ပ်ဴတာဆိုင္ရာတိုလီမုစမ်ား 6 01-06-2010 10:19 PM
မိမိတင္ထားတဲ့ Program ေတြ သူမ်ားျဖဳတ္လို့မရေအာင္ akm ကြန္ပ်ဴတာဆိုင္ရာတိုလီမုစမ်ား 11 18-12-2008 11:52 AM
Java how to Program 6th Edition kothu E-books မ်ား 0 04-02-2008 06:57 PM
Perform a simple server side request and update two elements in the current HTML mmmaung E-books မ်ား 0 28-01-2008 04:47 PM


ဖိုရမ္၏ ပင္မအခ်ိန္သည္ ဂရင္းနစ္စံေတာ္ခ်ိန္ +6.5 ျဖစ္သည္။ေဒသစံေတာ္ခ်ိန္ 06:45 AM
Inactive Reminders By Icora Web Design