หน้าแรก
 การบ้าน
  C/C++ new
  Java new
  Windows Phone
  แจ้งเรื่องที่ต้องการ
 บทความ
  .NET
  Android
  Blackberry
  C++Builder
  Delphi
  Java
  Mobile
  Open Source
  Pocket PC
  Visual Basic
  Web
  Windows Phone
  Others
 แบบเรียนฟรี
  ASP
  ASP.NET Webmatrix
  C++
  eVB
  J2ME
  Java
  PHP
 ซอร์สโค้ด
  Android
  ASP
  C++
  VC++
  CGI-Perl
  Delphi
  Java
  jQuery
  PHP
  Visual Basic
  .NET
 บริการจากเรา
  เปิดท้าย... ขายโค้ด
  Freeware
  อัตราค่าโฆษณา
  รายชื่อลูกค้า
  สถิติผู้เข้าเว็บ
 ดาว์นโหลด
 ค้นหาข้อมูล
 กระดานสนทนา
  .NET
  C/C++
  Delphi
  Java
  Palm/PocketPC
  Visual Basic
  Web
  อื่นๆ
 กระดานงาน
 ลิงค์เว็บ
 เกี่ยวกับผม
 อัตราค่าโฆษณา
Social Network

Facebook  Twitter  YouTube
 New Article
 Webboard
 Freelanceboard
Freeware
โปรแกรมเบอร์ดี (BerDee)
โปรแกรมเบอร์ดี (Android)
เกมส์เป่ายิ้งฉุบ
เกมส์เป่ายิ้งฉุบ(Android)
WebcamMonitor
WebcamMonitor(Windows)
scSendMail
scSendMail(Windows)
MSN Caption
MSN Caption(Windows)
  Freelance comment
  ติดต่อสอบถามมาได้ตลอดนะ...
2015-07-29 13:35:58
  ถ้าผมต้องการเว็บที่พัฒน...
2015-01-18 15:33:54
  ถ้าผมต้องการเว็บที่พัฒน...
2015-01-18 15:32:51
  ติดต่อสอบถามเข้ามาได้นะ...
2014-01-06 12:47:38
  ถ้ายังหาคนสอนไม่ได้ ก็ลอ...
2013-07-06 01:04:37
  สนใจส่งขอบเขตมาคุยราคาก...
2013-03-24 18:54:20
  ถ้ายังไม่มีคนรับงานติดต...
2012-12-16 19:18:14
  สนใจคะ ติดต่อ 0905076277...
2012-11-12 11:07:46
  รับทำโปรเจ็คนักศึกษาหรื...
2012-10-29 03:10:46
  sukit_te34@hotmail.com...
2012-10-29 03:09:36
  Webboard comment
  ฉันอยากเจอเธอ
ฉันอยู่ใ...

2024-04-26 23:45:32
  สวัสดี คุณต้องการหาเงินจ...
2024-04-26 22:13:52
  เขียนโปรแกรมภาษาจาวา
1.โ...

2023-09-12 11:40:28
  ต้องลอง debug ดูเองครับ
ไล่...

2023-06-08 18:03:06
  ร้านค้าแห่งหนึ่ง จะต้องน...
2021-09-21 08:47:08
  จงเขียนโปรแกรมดำเนินการ...
2021-05-07 15:06:11
  จงเขียนโปรแกรมสำหรับคำน...
2021-03-09 14:21:45
  ขอดู...
2021-01-04 23:56:45
  ขอโค้ดเพื่อทำการเรียนกา...
2020-12-09 23:02:09
  แล้ว ?...
2020-12-09 10:56:34
  Homework comment
  เขียนโปรแกรมเพื่อรับค่า...
2022-02-24 10:45:17
  จากโค้ดนี้อะครับ พอดีลอง...
2021-03-22 01:22:39
  จากโค้ดนี้อะครับ พอดีลอง...
2021-03-22 01:22:39
  โจทย์การบ้าน c++ เขียนรูปแ...
2020-04-06 11:01:33
  แบบนี้ขอเป็น ภาษา php หน่อย...
2019-09-18 14:36:34
  ผมไม่อยากให้คุณได้คะแนน...
2019-04-27 01:29:07
  อาจารย์เขาบอกแนวข้อสอบม...
2019-04-27 00:44:29
  ขอสอบถามการเขียน c++ ครับ เ...
2018-04-02 12:19:21
  โค้ดตัวอย่างศึกษาให้เข้...
2017-11-26 14:50:05
  คำนวณค่าน้ำโดยรับค่ามิเ...
2017-11-20 23:15:26
  Article comment
  เท่าที่อ่าน error คือพื้นที่...
2022-03-23 13:56:48
  เรียน สอบถามปัญหา กับ อ.คร...
2022-01-24 17:39:49
  ต้องการ ให้เขียน โปรแกรม ...
2019-12-09 11:39:58
  รับเขียน arx จาก vc++ 2017 ล็อคโปร...
2019-09-19 09:48:09
  ทำการ register ไฟล์ที่ชื่อ mswinsck.oc...
2019-09-17 14:05:56
  ใน vb 6 ไม่มี component winsock เลยค่ะ ส...
2019-09-03 10:31:02
  รบกวนขอสอบถามหน่อยนะครั...
2019-03-04 05:31:04
  สามารถนำตัวหนังสือจากภา...
2018-12-25 08:54:32
  มีcode ของ VB ไหมค่ะ ถ้ามีรบกว...
2017-09-28 16:50:02
  น่าจะได้ครับ ไม่เคยลอง
...

2017-07-11 09:59:35
  9Mcode comment

Link Exchange

อัตราค่าโฆษณา
 
สร้าง LED Control (อ่าน 26,209)
ศุภกิจ ทองดี (9'M) บทความโดย: นาย ศุภกิจ ทองดี (9'M)
e-mail: webmaster@sourcecode.in.th
mobile: 09-5009-5351
Line: suppakit.thongdee
Youtube: 9Mcode
Fanpage: Sourcecode.in.th
   
: ดาว์นโหลดตัวอย่างโปรแกรม (ดาว์นโหลด 4,225 ครั้ง)

- - - - - - - - - - - - - - ผู้ให้การสนับสนุน- - - - - - - - - - - - - -

 
 
Freelanceรับพัฒนาโปรแกรม และเว็บ โดย 9'M 

บทความนี้เป็นตัวอย่างการสร้าง LED (Light effect diode) Control โดยมีความสามารถในการกำหนด สี เปิด-ปิด และมี Event Onchange เมื่อมีการเปิดปิด กับ LED Control

เริ่มต้นการสร้างโดย เปิดโปรแกรม Borland Delphi ซึ่งในโค้ดตัวอย่างนี้ผมใช้ Delphi 6 ครับ

1. เมื่อเปิด Delphi ขึ้นมาจะปรากฏ Project ให้เราไว้แล้ว ให้คุณทำการเพิ่ม Unit ใหม่ โดย เลือกจากเมนู File->New->Unit จะปรากฏหน้าต่าง Unit ใหม่ดังรูป

2. ทำการเพิ่มโค้ดดังตารางลงใน Unit2

unit Unit2;

interface
uses Controls,Graphics,Classes,Types;

type
 TLED = class(TGraphicControl)
 private
   FOnColor: TColor;
   FOffColor: TColor;
   FLedOn: Boolean;

   FOnChange: TNotifyEvent;

   procedure SetLedOn(Value: Boolean);
   procedure SetOnColor(Value: TColor);
   procedure SetOffColor(Value: TColor);

   procedure DrawLedEllipse;

 protected
   procedure Paint; override;
   procedure DoChange; virtual;

 public
   constructor Create(AOwner: TComponent); override;

 published
   property OnColor: TColor read FOnColor write SetOnColor;
   property OffColor: TColor read FOffColor write SetOffColor;
   property LedOn: Boolean read FLedOn write SetLedOn;

   property Visible;

   property OnChange: TNotifyEvent read FOnChange write FOnChange;
 end;

implementation

{ TLED }

constructor TLED.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FOnColor := clLime;
  FOffColor := clRed;
  FLedOn := false;

  width := 24;
  height := 24;

end;

procedure TLED.DoChange;
begin
  if Assigned(FOnChange) then FOnChange(self);

end;

procedure TLED.DrawLedEllipse;
var R: TRect;
    off: Integer;
begin
  R := ClientRect;
  if Height>Width then
    off := Width div 5
  else
    off := Height div 5;


  with Canvas do
  begin
    Pen.Color :=Canvas.Brush.Color;
    Ellipse(R.Left,R.Top,R.Right,R.Bottom);

    //3D effect
    Pen.Color := clWhite;
    Brush.Color := clWhite;
    Chord(R.Left+off, R.Top+off,
          R.Right-off, R.Bottom-off,
          R.Right div 2, R.Top+off,
          R.Left+off, R.Bottom div 2); 
  end;

end;

procedure TLED.Paint;
begin
  inherited;
  if  FLedOn then
    Canvas.Brush.Color := FOnColor
  else
    Canvas.Brush.Color := FOffColor;

  DrawLedEllipse;

end;

procedure TLED.SetLedOn(Value: Boolean);
begin
  if Value<>FLedOn then
  begin
    FLedOn := Value;
    Refresh;
    DoChange;
  end;
end;

procedure TLED.SetOffColor(Value: TColor);
begin
  if FOffColor<>Value then
  begin
    FOffColor := Value;
    Refresh;
  end;

end;

procedure TLED.SetOnColor(Value: TColor);
begin
  if FOnColor<>Value then
  begin
    FOnColor := Value;
    Refresh;
  end
end;

end.

3. ทำการเพิ่ม unit2 เพื่อให้ unit1 สามารถเรียกใช้ LED Control ที่อยู่ภายใน unit2 ด้วยการแก้ไข unit1 ดังรูป พร้อมทั้งเพิ่มส่วนของการประกาศตัวแปร LED สำหรับการสร้าง Control ดังรูปตามลำดับ

4. ทำการ ดับเบิ้ลคลิกที่ Form1 แล้วป้อนโค้ดดังตาราง

procedure TForm1.FormCreate(Sender: TObject);
begin
  LED :=TLED.Create(Self);
  LED.Parent :=Self;
  
end;

5. คลิกเลือกที่ Form1 ทำการเพิ่มปุ่มลงไป แล้วทำการดับเบิ้ลคลิกที่ปุ่ม แล้วป้อนโค้ดดังนี้

procedure TForm1.Button1Click(Sender: TObject);
begin
  LED.LedOn := not LED.LedOn; 
end;

6. ทดสอบโปรแกรม โดยกดปุ่ม F9 แล้วทดลองคลิกปุ่ม จะปรากฏ LED Control ดังรูป ให้ทดลองคลิกที่ปุ่ม จะเห็นการทำงาน ของ LED Control ที่เราได้ทำการสร้างขึ้น

ทิ้งทาย

คุณจะเห็นได้ว่า ในการสร้าง LED Control ในบทความนี้ เราได้ทำการสร้าง Class ใหม่ โดยทำการสืบทอด ความสามารถและคุณลักษณะต่างๆ ของ TGraphicControl หลังจากนั้นก็ ทำการเขียนโปรแกรมจัดการ ในส่วนของ Control ที่เราต้องการ

เมื่อเราต้องการเรียกใช้ Class ดังกล่าวที่อยู่ใน unit2 เราก็เพียงแค่เพิ่ม ชื่อ unit2 ไว้ใน uses ของ unit1 แล้วเราก็ทำการประกาศตัวแปร LED ซื่งเป็นตัวแปรแบบ TLED

เมื่อมีการ Create ของ Form1 หลังจากที่เราทำการกด F9 เพื่อ run โปรแกรม ,เราจะทำการสร้าง LED Control ขึ้นมา แล้วแสดงออกมาที่หน้า Form1 และเมื่อเราทำการคลิกที่ปุ่ม จะมีการเปลี่ยนแปลงของ Control แสดงให้เห็นครับ

จากบทความนี้ คุณอาจนำไปประยุกต์ใช้งาน สร้าง Control ง่ายๆ สำหรับโปรแกรมของคุณได้แล้วฮะ แล้วพบกันใหม่กับ 9M

: ดาว์นโหลดตัวอย่างโปรแกรม (ดาว์นโหลด 4,225 ครั้ง)
 

- - - - - - - - - - - - - - ผู้ให้การสนับสนุน- - - - - - - - - - - - - -

สอบถาม
  • ห้ามการโฆษณา หากต้องการติดต่อหาลูกค้า ติดต่อโฆษณาโดยตรงได้ที่ webmaster@sourcecode.in.th
  • ห้ามใช้คำหยาบและคำพูดที่ไม่เหมาะสม
  • ขอสงวนสิทธิหากตรวจพบ ข้อความที่ไม่เหมาะสม ข้อความนั้นจะถูกลบทันที
ชื่อ
อีเมล์
รายละเอียด

 
 
คลิปสอนเขียนโปรแกรม
เรียนเขียนโปรแกรมดอทเน็ต
เรียนเขียนโปรแกรมแอนดรอยด์
เรียนเขียนโปรแกรมเบล็คเบอร์รี่
เรียนเขียนโปรแกรมซี ซีพลัสพลัส
เรียนเขียนโปรแกรมจาวา
เรียนการใช้งานลินุกส์
เรียนการเขียนโปรแกรมวินโดว์โฟน
เรียนการเขียนโปรแกรมพีเฮชพี มายเอสคิวเอล
อัตราค่าโฆษณา
 
บทความที่เกี่ยวข้อง

Zoom หน้าจอด้วย Delphi

What?s new in Delphi 2005 #1 ( for ?in loop statement)

Dynamic Cast ใน Delphi

เขียนโปรแกรมให้ Run ตอน Startup Windows

การเขียน ActiveForm(ActiveX Control) เบื้องต้น

โปรแกรม Post ข้อมูล ไปยังไฟล์ ASP

แสดงหมายเลข IP Address ของเครื่องบน NetWork

การแสดงรายชื่อ Email Contact ของ Microsoft Outlook

การหาตำแหน่งของ Caret ใน Memo

การเขียน Service Application เพื่อใช้งานบน Windows NT/2000/XP
Tutorial
eVB Tutorial
ASP.NET Webmatrix Tutorial
J2ME Tutorial
C++  Tutorial
Java  Tutorial
PHP Tutorial
ASP Tutorial
 
แบบสำรวจ

Home - Article - Tutorial - Sourcecode - Dev Handbook - Search - WebBoard - Links - About Us

สงวนลิขสิทธิ์ ห้ามคัดลอก ทำซ้ำ แก้ไข ดัดแปลง ไม่ว่าในรูปแบบใด โดยไม่ได้รับอนุญาตเป็นลายลักษณ์อักษร
เลขทะเบียนพาณิชย์อิเล็กทรอนิกส์จากกระทรวงพาณิชย์: 7100503002000
Copyright 2001 SourceCode.in.th