1
General Programming / Re: HotTips : Delphi XE4
« เมื่อ: 22 พฤษภาคม 2013, 16:08:21 » วิธีเขียน Class หรือ Unit ใน Delphi
ถ้าใครเขียน Class Form เป็นอย่างเดียว การพัฒนาโปรแกรมใหญ่ๆ จะเป็นไปด้วยความยากลำบาก
เพราะยิ่งเขียน คำสั่งต่างๆก็ต้องใช้มากขึ้นด้วย เวลากลับไปแก้ไขคำสั่งต่างๆที่เขียนไว้
ก็จะเจอคำสั่งที่ปนเปกันไปหมด ทำให้การแก้ไขคำสั่ง ต้องใช้เวลาหรือแก้ไขได้ยากขึ้น
ฉนั้นถ้าเราแยกคำสั่งออกมาเป็น Unit Class จะทำให้การแก้ไขเพิ่มเติมคำสั่งต่างๆได้ง่ายไม่ซับซ้อน
------------------------------------------------------------------------------------------------------
AnimationWindow Unit class
Form class Example
ถ้าใครเขียน Class Form เป็นอย่างเดียว การพัฒนาโปรแกรมใหญ่ๆ จะเป็นไปด้วยความยากลำบาก
เพราะยิ่งเขียน คำสั่งต่างๆก็ต้องใช้มากขึ้นด้วย เวลากลับไปแก้ไขคำสั่งต่างๆที่เขียนไว้
ก็จะเจอคำสั่งที่ปนเปกันไปหมด ทำให้การแก้ไขคำสั่ง ต้องใช้เวลาหรือแก้ไขได้ยากขึ้น
ฉนั้นถ้าเราแยกคำสั่งออกมาเป็น Unit Class จะทำให้การแก้ไขเพิ่มเติมคำสั่งต่างๆได้ง่ายไม่ซับซ้อน
------------------------------------------------------------------------------------------------------
AnimationWindow Unit class
โค๊ด: [Select]
unit Unit2; //AnimationWindow Class.
interface
uses
Windows, Classes;
type
TAW = Record
FADE_IN: Integer;
FADE_OUT: Integer; //Types DwordFlags Enum.
EXPLODE: Integer;
IMPLODE: Integer;
end;
var
AW: TAW;
implementation
function AnimateWindow
(hWnd: HWND; dwTime: DWORD; dwFlags: TAW): bool; //ImportDll. Create functions.
stdcall; external 'user32.dll' name 'AnimateWindow';
begin
AW.FADE_IN:= 524288;
AW.FADE_OUT:= 589824;
AW.EXPLODE:= 262160; //Statement DwordFlags Enum.
AW.IMPLODE:= 327696;
end.
---------------------------------------------------------------------------------------Form class Example
โค๊ด: [Select]
unit Unit1; //Form class.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Unit2; //<-- Import Unit class.
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
AnimateWindow(self.Handle, 1000, AW.EXPLODE);
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
AnimateWindow(self.Handle, 1000, AW.IMPLODE);
end;
end.
