2009年3月27日 星期五

[AutoHotKey] 按下熱鍵開啟連發,再按一次熱鍵 停止連發

;看得懂得人就看吧。
;--------------------------------以下開始------------------------------

#Persistent
#NoEnv

v_Enable=0
UpdateSplashImage()
{
Global
if(v_Enable=0)
{
SplashImage,,X10 Y10 H24 W36 CWFF0000 CT000000 ZX5 ZY5 B2 FS9 WS700, NO
return
}
else
{
SplashImage,,X10 Y10 H24 W36 CW00FF00 CT000000 ZX5 ZY5 B2 FS9 WS700, OK
}
}

$`::
{
v_Enable:=!v_Enable
If (v_Enable=0)
{
SetTimer, Label0, Off
UpdateSplashImage()
}
else
{
SetTimer, Label0, 100
UpdateSplashImage()
}
}
Return

Label0:
{
SendRaw, {F5}
}

2009年3月24日 星期二

[C#] 我犯了沒看書的錯..全域變數

 我寫程式喜歡把所有東西都包在 Button 裡面,可是當不同的 Button 需要用到相同的變數時

 是個很大的困擾。。。



 竟然發現要把變數放在 ..

 public partial class Form1 : Form
    {
        DataTable dt;   <----------  OK
       
        public Form1()
        {
            InitializeComponent();
            DataTable dt2; <----------NG
        }

..  太高興了

2009年3月17日 星期二

[C#] IF內部的變數,如果外部要使用的時候 小技巧(書裡面沒教的)

原本

                           
                            if (result.Rows.Count == 0)
                            {

                             km.SQLExecute("INSERT INTO MGMES.dbo.PACKAGE_SN_FILL() VALUE () ");
                            }
                            else
                            {
                                 String show5_4_1 = result.Rows[0].ItemArray[0].ToString();
                               
                            }
                          
                            string show5_4_1_ADD1 = show5_4_1.Substring(1, 5); //這時候 show_5_4_1 不能使用




改成



                            string show5_4_1="";
                           
                            if (result.Rows.Count == 0)
                            {

                                km.SQLExecute("INSERT INTO MGMES.dbo.PACKAGE_SN_FILL() VALUE () ");
                            }
                            else
                            {
                                 show5_4_1 = result.Rows[0].ItemArray[0].ToString();
                               
                            }
                          
                            string show5_4_1_ADD1 = show5_4_1.Substring(1, 5); //可以使用了

2009年3月16日 星期一

[C#] 做流水號時,不滿位數補零(0)

在寫產生流水號的時候,需求是 9 Char 位數。

 可是資料不滿的時候要怎麼來補滿呢?


  string show4_5 = string.Format("{0,1:000000000}",int.Parse(PLT_QTY_FIRST)); //數量不滿 9 位數時,前面補 0

  //很多 0 那裡是指定總位數是多少。 
  //後面的 PLT_QTY_FIRST 是指原本的變數 ,就是原本的水號。

  結果:
  初值 PLT_QTY_FIRST = 999
   
  show4_5 = 000000999

...

  太機車。。。 竟然有更簡單的

  int.Parse(PLT_QTY_FIRST).ToString("000000000");

 


[C#] DateTimePicker 指定表示格式的方法

爬文看了一堆,沒想到最後試出來  是那麼簡單。。
 

  //這是改變顯示於 螢幕上 的部份
  public Form1()
        {
            InitializeComponent();
        
            dateTimePicker1.CustomFormat = "yyyy-MM-dd";

        }


 當選取日期變更以後,要得到變更後 的值:

 string PLT_DATE_FIRST= this.dateTimePicker1.Text; //把變更後的 Data 放到 PLT_DATE_FIRST 變數內容裡面