Archive for Programming

Create Array Parameters in C#

// November 14th, 2009 // No Comments » // Programming

Today i have request from ‘bad friend’ code name ‘mashudi’ to create Nearest Neighbor Class, Artificial Intelegent system that can compute distance from one to other node.

From this project I will share how to create a constructor or maybe you need for method that use array parameters.

Design of implementation in KNN node class will be like this :

KNNNode node1 = new KNNNode("Rose", 2.5, 4, 4.2);
KNNNode node2 = new KNNNode("Height", 2.5, 4, 4.2, 4.5, 6.3);

So you can add more parameters to that class.

(more…)

C# with MySQL Database

// October 30th, 2009 // No Comments » // Programming

If you want direct connection from C# to MySQL you can use MySQL.Data library from this resource. I’ve write down my own DataAccess class to make my work in other class easier.

Settings is setting class in .NET you can click on project->properties->settings to generate this class. You can find this file in Debug folder that have .config extension.

(more…)

Mutex for one instance application

// October 29th, 2009 // No Comments » // Programming

If you want to create application that must be running only once (can’t duplicate). Mutex class in System.Threading namespace can help you to done this problem.

Here the sample of my code to control’s my program only run once, i need this cause i working on serial communication. But, you can use this for other purpose.
(more…)

Exposing Inner Control Event in WPF UserControl

// August 16th, 2009 // No Comments » // Programming

When you have controls inside your custom UserControl you can’t call directly to any controls inside user control in WPF. There’s a way to expose them.. First you can add RoutedEvents to a custom control you can declare a public static RoutedEvent in your class and use EventManager.RegisterRoutedEvent() method to register these events. EventManager.RegisterRoutedEvent() has some parameters: the event name, routing strategy, type of RoutedEventHandler and type of the custom control.

(more…)

Acessing WinAPI from C#

// August 16th, 2009 // No Comments » // Programming

The Windows API, informally WinAPI, is Microsoft’s core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. It was formerly called the Win32 API; however, the name Windows API more accurately reflects its roots in 16-bit Windows and its support on 64-bit Windows.

When declaring APIs in C#, use the following syntax:

using System.Runtime.InteropServices;

...

[DllImport( dll_filename )]
[public|private] static extern ret_type function( [type para, ...] );

(more…)

Unsafe in C# and Image Processing

// August 15th, 2009 // No Comments » // Programming

From my last projects, I write many custom class to manipulating image. Today I will share basic code to write C# code when you focusing on Image Processing.

When I use Bitmap function GetPixel and SetPixel, oh.. .NET is bad for Image Processing.. and that’s not 100% right. We still have pointers on C# like on C++. To use it just go to Project->Properties->Build than check “Allow unsafe code”.

Now, go ahead and try to understand how to use unsafe code in C# and implement it on Image Processing.
(more…)

Serialize Collection of Object in C#

// August 14th, 2009 // No Comments » // Programming

Today i’ve create a simple project… finally I find way to serialize collection of object in C#.

As luck would have it, most of the types found within the System.Collections and System.Collections.Generic namespaces have already been marked as [Serializable]. Therefore, if you wish to persist a set of objects, simply add the set to the container (such as an ArrayList or a List) and serialize the object to your stream of choice. Other choice is make a class that inherits from collection…

first we can create a simple SoundData class like this :

[Serializable]
public class SoundData
{
   private int soundId;
   private string soundName;

   public int SoundId
   {
        get { return soundId; }
        set { soundId = value; }
    }

   public string SoundName
   {
        get { return soundName; }
        set { soundName = value; }
   }

   //You will get error if you miss this constructor ^_^
   public SoundData()
   { }

   public SoundData(int soundId, string soundName)
   {
       this.soundId = soundId;
       this.soundName = soundName;
   }
}

(more…)

PHVsPjxsaT48c3Ryb25nPndvb19hYm91dDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2Fib3V0bGluazwvc3Ryb25nPiAtICM8L2xpPjxsaT48c3Ryb25nPndvb19hZHNfcm90YXRlPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV8xPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS0xLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzI8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTIuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfMzwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtMy5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV80PC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS00LmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8xPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzI8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfMzwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF80PC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWx0X3N0eWxlc2hlZXQ8L3N0cm9uZz4gLSBkZWZhdWx0LmNzczwvbGk+PGxpPjxzdHJvbmc+d29vX2N1c3RvbV9jc3M8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fZmF2aWNvbjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlZWRidXJuZXJfdXJsPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZ29vZ2xlX2FuYWx5dGljczwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWU8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9hcmNoaXZlczwvc3Ryb25nPiAtIGh0dHA6Ly93Y29kZS5uZXQvYXJjaGl2ZXMvPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9mbGlja3JfY291bnQ8L3N0cm9uZz4gLSAxMDwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWVfZmxpY2tyX3VybDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cuZmxpY2tyLmNvbS9waG90b3MvNDE0NzE0NzBATjAzLzwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWVfZmxpY2tyX3VzZXI8L3N0cm9uZz4gLSA0MTQ3MTQ3MEBOMDM8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX2xpZmVzdHJlYW08L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX3Bvc3RzPC9zdHJvbmc+IC0gNDwvbGk+PGxpPjxzdHJvbmc+d29vX2xvZ288L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19tYWlucmlnaHQ8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX21hbnVhbDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9zdXBwb3J0L3RoZW1lLWRvY3VtZW50YXRpb24vaXJyZXNpc3RpYmxlLzwvbGk+PGxpPjxzdHJvbmc+d29vX25hdjwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fc2hvcnRuYW1lPC9zdHJvbmc+IC0gd29vPC9saT48bGk+PHN0cm9uZz53b29fdGFiczwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fdGhlbWVuYW1lPC9zdHJvbmc+IC0gSXJyZXNpc3RpYmxlPC9saT48bGk+PHN0cm9uZz53b29fdmlkZW88L3N0cm9uZz4gLSBmYWxzZTwvbGk+PC91bD4=