星期一, 4月 27, 2015

[DP] 建造者模式

根據大話設計模式書本內容,來練習建造者模式

擷取書本上的類別圖

[DP] 建造者模式-2

星期一, 4月 20, 2015

[SSMS] instance 狀態列顏色

習慣把 TSQL Script 透過 SSMS 方案總管來整理,因為該方案又故意放在 Dropbox 內和筆電同步,所以常常搞不清楚該 TSQL Script 到底是連進哪一台 instance,很擔心是連進 Product 環境內,那就 GG 了

Google 一下才發現原來 SSMS 可以針對不同 instance 連線在狀態列上設定顏色

方案總管內有多個連接,常常不知道連進哪個 instance

[SQL] instance 視窗顏色-1

SSMS 連接視窗 => 選擇伺服器名稱 => 選項

[SQL] instance 視窗顏色-2

連接屬性 Tag => 勾選 "使用自訂顏色" => 選取顏色,這樣就可以針對 instance 連線設定顏色

[SQL] instance 視窗顏色-3

連進 Product 環境內,就可以看見狀態資訊變成紅色

[SQL] instance 視窗顏色-4

星期一, 4月 13, 2015

[DP] 狀態模式

根據 Head First Design Pattern 書本內容,來練習狀態模式

擷取 Head First 上的類別圖

[DP] 狀態模式-1

星期二, 4月 07, 2015

[DP] 轉接器模式

根據 Head First Design Pattern 書本內容,來練習轉接器模式

擷取 Head First 上的類別圖

[DP]轉接器模式-0

星期三, 4月 01, 2015

[C#] 執行 ListBox 內的網址

論壇問題
要把網址加入 ListBox 並執行 ListBox 內全部網址
拿來記錄執行 URL 語法和檢查 URL 的正則表示式
  • 畫面設計
[C#] 執行 ListBox 內的網址-0
  • Code
namespace ListUrl
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            string url = txtUrl.Text;
            if (string.IsNullOrEmpty(url))
            {
                MessageBox.Show("沒有輸入任何欄位", "提醒", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }

            if (lstUrl.Items.Contains(url))
            {
                MessageBox.Show("該網址已經存在", "提醒", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }

            string pattern = @"^http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?$";
            if (System.Text.RegularExpressions.Regex.IsMatch(url, pattern) == false)
            {
                MessageBox.Show("不是正確 URL 網址", "錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            lstUrl.Items.Add(url);
        }

        private void btnDelete_Click(object sender, EventArgs e)
        {
            int del = lstUrl.SelectedIndex;
            if (del < 0) return;
            lstUrl.Items.RemoveAt(del);
        }

        private void btnRun_Click(object sender, EventArgs e)
        {
            foreach (string url in lstUrl.Items)
            {
                System.Diagnostics.Process.Start("chrome.exe", url); 
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            txtUrl.Text = @"http://www.microsoft.com.tw";
        }
    }
}