delegate and winform object 應用介紹-[delegate]
//如何使用delegate把對象傳回到windows form
//傳回到windows form 物件
private void button1_Click(object sender, EventArgs e)
{
textBox1.BeginInvoke(new creatball(tst));
}
//委派對象
public delegate void creatball();
public void tst()
{
textBox1.AppendText("aaaa");
}
2009年12月26日 星期六
2009年9月6日 星期日
[c#] interface 應用介紹-[interface]
interface 應用介紹-[interface]
1.) interface 語法:
using System;using System.Collections.Generic;
using System.Text;
namespace areaFace
{
interface AreaInterface
{
void triangle(int x,int y); //三角形
int circle(int x, int y); //圓形 ,帶回傳值
void square(int x, int y); //方形
}
}
2.) interface實做:
using System;
using System.Collections.Generic;using System.Text;
namespace areaFace
{
public class AreaClass:AreaInterface
{
//圓circle面積公式: 圓面積=半徑×半徑×3.14
//正方形square面積公式: 長x寬=正方
//梯形面積: 上底*高/2 +下底*高/2=(上底+下底)*高/2
//三角形triangle面積: 底×高÷2
//圓面積
private int circlradius1;
private int circlradius2;
public int circlarea;
//圓面積建構子
public AreaClass(int circlradius1, int circlradius2)
{
//呼叫圓面積涵式
circlarea = circle(circlradius1, circlradius2);
}
//圓面積實做
public int circle(int x ,int y)
{
//圓circle面積公式: 圓面積=半徑×半徑×3.14
int circlearea;
circlarea = x * y;
Console.WriteLine(circlarea); //打印
return circlarea; //回傳
}
public void square(int x, int y)
{
//未完
}
public void triangle(int x, int y)
{
//未完
}
}
}
3.) 實做測試:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;using System.Drawing;using System.Text;
using System.Windows.Forms;
namespace areaFace
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
AreaClass ar = new AreaClass(10, 20);
MessageBox.Show(ar.circlarea.ToString () );
}
}
}
1.) interface 語法:
using System;using System.Collections.Generic;
using System.Text;
namespace areaFace
{
interface AreaInterface
{
void triangle(int x,int y); //三角形
int circle(int x, int y); //圓形 ,帶回傳值
void square(int x, int y); //方形
}
}
2.) interface實做:
using System;
using System.Collections.Generic;using System.Text;
namespace areaFace
{
public class AreaClass:AreaInterface
{
//圓circle面積公式: 圓面積=半徑×半徑×3.14
//正方形square面積公式: 長x寬=正方
//梯形面積: 上底*高/2 +下底*高/2=(上底+下底)*高/2
//三角形triangle面積: 底×高÷2
//圓面積
private int circlradius1;
private int circlradius2;
public int circlarea;
//圓面積建構子
public AreaClass(int circlradius1, int circlradius2)
{
//呼叫圓面積涵式
circlarea = circle(circlradius1, circlradius2);
}
//圓面積實做
public int circle(int x ,int y)
{
//圓circle面積公式: 圓面積=半徑×半徑×3.14
int circlearea;
circlarea = x * y;
Console.WriteLine(circlarea); //打印
return circlarea; //回傳
}
public void square(int x, int y)
{
//未完
}
public void triangle(int x, int y)
{
//未完
}
}
}
3.) 實做測試:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;using System.Drawing;using System.Text;
using System.Windows.Forms;
namespace areaFace
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
AreaClass ar = new AreaClass(10, 20);
MessageBox.Show(ar.circlarea.ToString () );
}
}
}
2009年7月30日 星期四
2009年6月11日 星期四
[xml & HMI] xml & HMI 應用介紹-[XML觀念]
xml & HMI 應用介紹-[XML觀念]
XML簡介:
1.) XML是用來建立描述結構化資料標示語言的語言。
2.) 與資料無關的格式。
3.) 開放,可讓人讀取的資料格式,看起來像是HTML。
4.) 能避免瀏覽器或是其他中介軟體,自行增加特定的HTML標籤。
5.) 具擴展性,不像HTML有固定的格式。
6.) 有助於伺服器,瀏覽器,以及應用程式之間的資料傳輸。
7.) 經由建立DTD(Document Type Definition,文件類別定義),可用來定義其他領域(如:數字\化學\音樂等等)相關的語言。
8.) XML是由SGML經過Web最佳化之後,產生的子集合。
9.) XML允許在Web上自訂及驗證文件格式的標籤。
10.) 事實上,XML是以標籤的型態來撰寫結構化文件的架構。
11.) XML可以自行建立標示語言的文法或規則。
12.) XML用於描述資料,其重點在於資料內容的組織。而HTML則用於呈現資料,重點在瀏覽器上的展現方式。
差異說明:
1.) HTML的缺點,導致XML的誕生 (為何XML興起?)
2.) 各大瀏覽器廠商均推出自己的標籤(在HTML標準規格之外),造成不相容。
3.) HTML只能呈現文字方式,卻不能有意義的標示語言,沒有邏輯上的意義。
4.) 不能呈現良好的樹狀階層架構。
5.) 只能使用在瀏覽器之中。不能支援應用程式間的訊息交換。搜尋結果不精確。
6.) 不能指定網頁的集合(不能將網頁組成一分文件)。
7.) 單向連結限制太多,無法將分散的文件組織成為複合文件。
XML與HTML的比較 (Coding與技術方面的比較) (但* XML不是用來取代HTML的)
HTML XML
1.) 有固定的標籤 。 // 無固定標籤,可自訂標籤 。
2.) 元素及屬性的名稱不分大小寫 。 // 元素及屬性的名稱大小寫有別 。
3.) 標籤用來展現元素的外觀 。 // 標籤用於組織資料,呈現樣式可獨立於元素之外 。
4.) 應用沒有延展性 。 // 應用具有延展性 。
5.) Client端比較限於瀏覽器 。// Client端可以使用到XML parser的應用程式 。
6.) 標籤不包含資料的知識 。// 標籤在語意上可表示資料的意義 。
7.) 有標準規範的封閉性語言 。// 可以自訂標籤的開放性語言 。
8.) 較容易學習 。// 入門容易,出師難 。
9.) 不分大小寫 。// 大小寫有別 。
10.) 像
這種空標籤不需要特別的寫法 。// 空標籤需要特別的語法,例如: 。
11.) 忽略多餘的空白字元 。// 內容中的空白有意義 。
XML基本規則 通常我們對一份XML資料,會有以下幾點的要求
必須以XML文件宣告為起始 XML的文件宣告是非常重要的,就像我們有時候會再HTML文件中作Meta Data的宣告一樣,XML的文件宣告相當簡短,只有一行,他主要是在宣告這份XML文件的格式版本、文件編碼以及一些其他的外部資訊,他的格式也相當簡單,如下所示:
續..........................
XML簡介:
1.) XML是用來建立描述結構化資料標示語言的語言。
2.) 與資料無關的格式。
3.) 開放,可讓人讀取的資料格式,看起來像是HTML。
4.) 能避免瀏覽器或是其他中介軟體,自行增加特定的HTML標籤。
5.) 具擴展性,不像HTML有固定的格式。
6.) 有助於伺服器,瀏覽器,以及應用程式之間的資料傳輸。
7.) 經由建立DTD(Document Type Definition,文件類別定義),可用來定義其他領域(如:數字\化學\音樂等等)相關的語言。
8.) XML是由SGML經過Web最佳化之後,產生的子集合。
9.) XML允許在Web上自訂及驗證文件格式的標籤。
10.) 事實上,XML是以標籤的型態來撰寫結構化文件的架構。
11.) XML可以自行建立標示語言的文法或規則。
12.) XML用於描述資料,其重點在於資料內容的組織。而HTML則用於呈現資料,重點在瀏覽器上的展現方式。
差異說明:
1.) HTML的缺點,導致XML的誕生 (為何XML興起?)
2.) 各大瀏覽器廠商均推出自己的標籤(在HTML標準規格之外),造成不相容。
3.) HTML只能呈現文字方式,卻不能有意義的標示語言,沒有邏輯上的意義。
4.) 不能呈現良好的樹狀階層架構。
5.) 只能使用在瀏覽器之中。不能支援應用程式間的訊息交換。搜尋結果不精確。
6.) 不能指定網頁的集合(不能將網頁組成一分文件)。
7.) 單向連結限制太多,無法將分散的文件組織成為複合文件。
XML與HTML的比較 (Coding與技術方面的比較) (但* XML不是用來取代HTML的)
HTML XML
1.) 有固定的標籤 。 // 無固定標籤,可自訂標籤 。
2.) 元素及屬性的名稱不分大小寫 。 // 元素及屬性的名稱大小寫有別 。
3.) 標籤用來展現元素的外觀 。 // 標籤用於組織資料,呈現樣式可獨立於元素之外 。
4.) 應用沒有延展性 。 // 應用具有延展性 。
5.) Client端比較限於瀏覽器 。// Client端可以使用到XML parser的應用程式 。
6.) 標籤不包含資料的知識 。// 標籤在語意上可表示資料的意義 。
7.) 有標準規範的封閉性語言 。// 可以自訂標籤的開放性語言 。
8.) 較容易學習 。// 入門容易,出師難 。
9.) 不分大小寫 。// 大小寫有別 。
10.) 像
這種空標籤不需要特別的寫法 。// 空標籤需要特別的語法,例如: 。
11.) 忽略多餘的空白字元 。// 內容中的空白有意義 。
XML基本規則 通常我們對一份XML資料,會有以下幾點的要求
必須以XML文件宣告為起始 XML的文件宣告是非常重要的,就像我們有時候會再HTML文件中作Meta Data的宣告一樣,XML的文件宣告相當簡短,只有一行,他主要是在宣告這份XML文件的格式版本、文件編碼以及一些其他的外部資訊,他的格式也相當簡單,如下所示:
續..........................
2009年5月15日 星期五
[HMI] PanelExpress Macro 實踐匈牙利命名法Tag管理介紹-[如何管理好你的macro及占用的內部點記憶體]
PanelExpress Macro 實踐匈牙利命名法Tag管理介紹-[如何管理好你的macro及占用的內部點記憶體]
說明: (管理精神)
為何要管理? (看以下圖片表示)
1.)當你的專案越來越大的時候,巨集越寫越多的時候該怎麼辦?
2.)當你的專案是多人共同開發的時候該怎麼辦?
3.)當你的專案過幾年之後還要修改macro一堆看不懂也查不出頭緒該怎麼辦?
點圖放大收看外觀-1-[定義變數表及Tag名稱] & [左下角為macro管理名稱右上角為tag table]

點圖放大收看外觀-2-[Macro內容呼叫子程式採用匈牙利的命名法]-[呼叫上張圖片左下角Macro名稱執行段落程式]
點圖放大收看外觀-3-[匈牙利變數Tag name 表示]-[綠色字部分表示註解]
點圖放大收看外觀-4-[每段程式之前一定有助解聲明程式執行大綱和維護者是誰一些"summary"資料]
說明: (管理精神)
為何要管理? (看以下圖片表示)
1.)當你的專案越來越大的時候,巨集越寫越多的時候該怎麼辦?
2.)當你的專案是多人共同開發的時候該怎麼辦?
3.)當你的專案過幾年之後還要修改macro一堆看不懂也查不出頭緒該怎麼辦?
點圖放大收看外觀-2-[Macro內容呼叫子程式採用匈牙利的命名法]-[呼叫上張圖片左下角Macro名稱執行段落程式]
點圖放大收看外觀-5-[完整的註解有利於自己有小管理也利於專案轉移他人讀取]
*為何我想制訂管理的動機,因為三年多來做了很多專案,雜亂的macro讓我的工作很無效率,專案轉移交時,不斷重演解釋的戲碼,浪費了我很多時間,但也增進大家感情.
*養成良好的程式編寫管理習慣,規劃出制度,可以免除"屍體"(管理無章的程式碼),纏著你,讓你無法再執行開發新的專案.
*此精神出自於我的老師.(人要管理好"自己"也要管理好自己的"碼",一段碼可以看出一個人的"個性"有沒有重視"Team work"精神)
*養成良好的程式編寫管理習慣,規劃出制度,可以免除"屍體"(管理無章的程式碼),纏著你,讓你無法再執行開發新的專案.
*此精神出自於我的老師.(人要管理好"自己"也要管理好自己的"碼",一段碼可以看出一個人的"個性"有沒有重視"Team work"精神)
2009年5月6日 星期三
[ASCII] ASCII簡表0~127 & 128~255 Code-[jpg檔]
[ASC] ASCII簡表0~127 & 128~255 Code-[jpg檔]
點圖放大收看外觀-[0~127 code]
點圖放大收看外觀-[128~255 code] 待續..........JIS Code 和文碼
2009年5月5日 星期二
[OPC Server] OPC Server -[觀念導讀 part_1]
[OPC Server] OPC Server -[觀念導讀 part_1]
什麼是OPC概念:
OPC是OLE for Process Control的縮寫,即把OLE應用於工業控制領域。OLE原意是對象鏈接和嵌入,隨著OLE 2的發行,其範圍已遠遠超出了這個概念。現下的OLE包容了許多新的特徵,如統一數據傳輸、架構化存儲和自動化,已經成為獨立於計算機語言、作業系統甚至硬體平台的一種規範,是面向對象程式設計概念的進一步推展。OPC建立OLE規範之上,它為工業控制領域提供了一種標準的數據訪問機製。
工業控制領域用到大量的現場設備,在OPC出現以前,軟體開發商需要開發大量的驅動程式來連接這些設備。即使硬體供應商在硬體上做了一些小小改動,應用程式就可能需要重寫;同時,由於不同設備甚至同一設備不同單元的驅動程式也有可能不同,軟體開發商很難同時對這些設備進行訪問以優化操作。硬體供應商也在嘗試解決這個問題,然而由於不同客戶有著不同的需要,同時也存在著不同的數據傳輸協議,因此也一直沒有完整的解決方案。 自OPC提出以後,這個問題終於得到解決。
OPC規範包括OPC伺服器和OPC客戶兩個部分,其實質是在硬體供應商和軟體開發商之間建立了一套完整的“規則”,只要遵循這套規則,數據交互對兩者來說都是透明的,硬體供應商無需考慮應用程式的多種需求和傳輸協議,軟體開發商也無需了解硬體的實質和操作過程。
什麼是OPC概念:
OPC是OLE for Process Control的縮寫,即把OLE應用於工業控制領域。OLE原意是對象鏈接和嵌入,隨著OLE 2的發行,其範圍已遠遠超出了這個概念。現下的OLE包容了許多新的特徵,如統一數據傳輸、架構化存儲和自動化,已經成為獨立於計算機語言、作業系統甚至硬體平台的一種規範,是面向對象程式設計概念的進一步推展。OPC建立OLE規範之上,它為工業控制領域提供了一種標準的數據訪問機製。
工業控制領域用到大量的現場設備,在OPC出現以前,軟體開發商需要開發大量的驅動程式來連接這些設備。即使硬體供應商在硬體上做了一些小小改動,應用程式就可能需要重寫;同時,由於不同設備甚至同一設備不同單元的驅動程式也有可能不同,軟體開發商很難同時對這些設備進行訪問以優化操作。硬體供應商也在嘗試解決這個問題,然而由於不同客戶有著不同的需要,同時也存在著不同的數據傳輸協議,因此也一直沒有完整的解決方案。 自OPC提出以後,這個問題終於得到解決。
OPC規範包括OPC伺服器和OPC客戶兩個部分,其實質是在硬體供應商和軟體開發商之間建立了一套完整的“規則”,只要遵循這套規則,數據交互對兩者來說都是透明的,硬體供應商無需考慮應用程式的多種需求和傳輸協議,軟體開發商也無需了解硬體的實質和操作過程。
點圖放大收看外觀
OPC的優越性是顯而易見的︰
1.) 硬體供應商只需提供一套符合OPC Server規範的程式組,無需考慮工程人員需求。
2.) 軟體開發商無需重寫大量的設備驅動程式。
3.) 工程人員在設備選型上有了更多的選擇。
4.) OPC擴展了設備的概念。只要符合OPC伺服器的規範,OPC客戶都可與之進行數據交互,而無需了解設備究竟是PLC還是儀表,甚至在數據庫系統上建立了OPC規範,OPC客戶也可與之方便地實現數據交互。
opc web side:
訂閱:
文章 (Atom)