// ----------------------------------------------------------------------------- // File name: STextBox.cs // Author: Smart Goat // Email: dmtmd2010@yahoo.com.vn // Blog: knowledgesharez.net // Date: 2013-12-09 // Description: a text box with placeholder, similar the web input control. // - Properties: // + Placeholder: string - The content of the placeholder // - Methods: // + IsEmpty(): bool - Check if the text box is empty (recommended) // ----------------------------------------------------------------------------- using System; using System.Drawing; using System.Windows.Forms; namespace FooBar { class STextBox : TextBox { private bool textInputted; private Color backupForeColor = Color.Empty; private string placeholder = string.Empty; public string Placeholder { get { return placeholder; } set { placeholder = value; SetPlaceHolder(); } } public bool IsEmpty() { return string.IsNullOrEmpty(Text) || !textInputted; } private void SetPlaceHolder() { if (string.IsNullOrEmpty(Text)) { Text = placeholder; ForeColor = Color.Gray; textInputted = false; } } protected override void OnTextChanged(EventArgs e) { base.OnTextChanged(e); textInputted = !string.IsNullOrEmpty(Text); } protected override void OnEnter(EventArgs e) { base.OnEnter(e); if (!textInputted) { Text = string.Empty; ForeColor = backupForeColor; } } protected override void OnLeave(EventArgs e) { base.OnLeave(e); SetPlaceHolder(); } protected override void OnForeColorChanged(EventArgs e) { base.OnForeColorChanged(e); if (backupForeColor == Color.Empty) { backupForeColor = ForeColor; } } protected override void OnKeyDown(KeyEventArgs e) { base.OnKeyDown(e); if (e.Control && e.KeyCode == Keys.A) { SelectAll(); } } } }
Tuesday, December 10, 2013
Textbox with placeholder by C#
It's here. A textbox with placeholder. Look like input control in html. Create a file named STextBox.cs and paste this code:
Sunday, December 8, 2013
Simple photoshop script
This is my simple script to join images using photoshop:
// create a new document size 30000x500 pixels at 72ppi var doc = app.documents.add (30000, 500, 72); // prepare the real width of the joined image var wid = new UnitValue(0, "px"); // loop through all images // 3 is the number of images // images are store in c:\img folder // images' file name: img1.jpg, img2.jpg, ... for (i = 1; i <= 3; i++) { // take a file var fileRef = File("C:\\imgs\\img" + i + ".jpg"); // open the image in a new document var imgdoc = app.open(fileRef); // resize the opened image to height 500px var ws = 500 * imgdoc.width / imgdoc.height; imgdoc.resizeImage(ws, 500); // copy the resized image to working document imgdoc.selection.selectAll(); imgdoc.selection.copy(); app.activeDocument = doc; doc.paste(); // get the top layer var pslayer = doc.layers[0]; // move the pasted image to the right position var position = pslayer.bounds; position[0] = wid - position[0]; position[1] = 100 - position[1]; pslayer.translate(position[0], -position[1]); // close the opened image and update the real width app.activeDocument = imgdoc; wid += imgdoc.width; imgdoc.close(SaveOptions.DONOTSAVECHANGES); }
Saturday, December 7, 2013
Monday, December 2, 2013
[Tutorial] Move form with no border
Just add the below snippet to your code (C#):
private const int WM_NCHITTEST = 0x84; // Mouse capture. private const int HTCLIENT = 0x1; // Client area. private const int HTCAPTION = 0x2; // Title bar. // This function intercepts all the commands sent to the application. // It checks if user click (WM_NCHITTEST) on the form area (HTCLIENT) // It fakes the result as the title bar (HTCAPTION) // This makes the form thinks user clicked on the title bar. // So we can click and move form by (fake) title bar. protected override void WndProc(ref Message message) { base.WndProc(ref message); if (message.Msg == WM_NCHITTEST && (int)message.Result == HTCLIENT) { message.Result = (IntPtr)HTCAPTION; } }
Thursday, October 17, 2013
[Tutorial] Add offline javadoc to eclipse
If you are working with eclipse, the javadocs come from internet. And eclipse takes a bit delay to show the docs. You can config your eclipse to use offline javadocs. This will make eclipse faster and you can see the docs without internet. These are the step:
1. Download javadocs:
Java 6: http://docs.oracle.com/javase/6/docs/
Java 7: http://docs.oracle.com/javase/7/docs/
Download the javadocs zip file and put in any where that you want.
2. Config eclipse:
Done
1. Download javadocs:
Java 6: http://docs.oracle.com/javase/6/docs/
Java 7: http://docs.oracle.com/javase/7/docs/
Download the javadocs zip file and put in any where that you want.
2. Config eclipse:
Select Preferences |
Select Installed JREs |
Select the java version that you want to add docs and then select Edit |
Select rt.jar package and then select Javadoc Location |
Select Javadoc in archive and browse the zip that you downloaded |
Sunday, October 6, 2013
How the CPU works
Every computer, smartphone, ... has a CPU inside. It's the brain of these devices. But how it works? After surfing around for a while, I found this. Take a look at how a CPU works:
Summary:
First, all devices have their own machine code to tell them what to do.
CPU takes a string of bits (machine code - designed by the manufacturer) and output another string of bits that do some special tasks or tell the devices what to do.
'The strings of bits' - intructions, are stored in RAM (random access memory). CPU read (input) these instructions and execute an output. The output maybe tell the hard disk to write somethings. Maybe store somethings to RAM again.
Summary:
First, all devices have their own machine code to tell them what to do.
CPU takes a string of bits (machine code - designed by the manufacturer) and output another string of bits that do some special tasks or tell the devices what to do.
'The strings of bits' - intructions, are stored in RAM (random access memory). CPU read (input) these instructions and execute an output. The output maybe tell the hard disk to write somethings. Maybe store somethings to RAM again.
Wednesday, September 25, 2013
[Tip] Show all sheets in Excel 2013
If you have tried Excel 2013, you would see a new style of manage sheets. For somebody, it's strange and hard to use if there are many sheets.
Today I will show you how to view all sheets and move to any sheet you want. It's very easy!
Right click on the arrow
And here is what you'll see!
Today I will show you how to view all sheets and move to any sheet you want. It's very easy!
Excel sheets |
Right click on the arrow
And here is what you'll see!
Wednesday, August 21, 2013
[Tip] Set static ARP
For Windows XP
1. Open Command Prompt2. At the command prompt, type:
arp -s ip_address mac_addressExample:
arp -s 192.168.2.1 00-34-A3-7D-66-FF3. In order to delete the static arp entry, type:
arp -d ip_addressExample:
arp -d 192.168.2.1
For Windows 7, Windows 8
1. Open Command Prompt2. At the command prompt, type:
netsh -c "interface ipv4" set neighbors "connection_name" "ip_address" "mac_address"Example:
netsh -c "interface ipv4" set neighbors "Wi-fi" "192.168.1.1" "00-A3-F7-C0-AE-32"3. In order to delete the static arp entry, type:
netsh interface ipv4 delete neighbor "connection_name" "ip_address" "mac_address"Example:
netsh interface ipv4 delete neighbor "Wi-fi" "192.168.1.1" "00-A3-F7-C0-AE-32"When you restart the computer, if the arp entry is still displayed, go to this link for more information.
For Linux
1. Open Terminal2. At the terminal prompt, type:
sudo arp -s ip_address mac_addressExample:
sudo arp -s 10.0.0.2 00:0C:29:C0:94:BF3. In order to delete the static arp entry, type:
sudo arp -d ip_addressExample:
sudo arp -d 10.0.1.0
Tuesday, August 20, 2013
How much time you surfing in a day
Today I found some firefox extensions to track you browsing time. These extensions are good for someone who is easy to be distract in working. It let you know how much time you spend for each page. Here they are:
Mind the Time
Rescue Time
Monday, August 19, 2013
[Cooking] Poached pork with egg
Today, I give a guide to cook "poached pork with eggs" - an Asia food.
Ingredients:
- 600 grams pork ham
- 4 duck eggs
- 1 liter of coconut water
- Star anise
- Fish sauce
- Monosodium glutamate (MSG)
- Colored water
- Sugar
- Chopped onion
- Chopped garlic
- Pepper
- Cooking oil
Directions:
- Cleaned pork, cut into bite size pieces, marinate with 1 tablespoon of chopped garlic, 1 tbsp. of chopped onion, 1 cup of fish sauce, 4 tbsp. of sugar, 1 tbsp. of MSG, 1 teaspoon of ground pepper, 1 tbsp of colored water, 2 tbsp of cooking oil, for about 15 minutes for the spices are absorbed.
- Boiled duck eggs for about 10 minutes, let cool, peel. Then put into a heat frying pan of oil, fry until yellow evenly.
- Put pork to the pot star anise, add fresh coconut water. Cook over medium heat until the meat is ready, just cooked, remove foam. Then add the duck eggs and cook with eggs in small fire until the meat is tender, done.
Saturday, August 17, 2013
[Tutorial] Install Damn Small Linux (DSL) 2.4 on Virtualbox
Step 2: Download dsl iso install file
Access ftp://distro.ibiblio.org/pub/linux/distributions/damnsmall/ select the archive folder and download the file dsl-2.4.iso (if you want the newest version, select the current folder)
Step 3: Install and setting
Open virtualbox and click New
Now config the created virtual machine
Replace SATA controller by IDE controller:
Choose dsl.vdi file >> Open >> Ok
Now start the virtual machine and install dsl
Select the dsl-2.4.iso file downloaded before
When the boot screen appear, press Enter key and wait for dsl to start
Here is what we got:
(If you have problem with mouse, select Machine >> Disable Mouse Integration)
Now, right click on desktop >> Xshell >> Root Access >> Transparent
The shell window appear, type fdisk /dev/hda
Press 'm' key for help menu:
Type commands as the following image:
(n >> p >> 1 >> 520)
Continue with these commands: t >> 83 >> w
Now, close the shell window, right click on desktop >> Apps >> Tools >> Install to Hard Drive
A window appear, type hda1 >> n >> n >> y
Type 'y' and press Enter:
Type 'g' to make Grub boot loader:
After this, type 'y' to restart the virtual machine, and then you got DSL installed.
Subscribe to:
Posts (Atom)