SteeDemo.TaskForms Namespace

ยูนิตเก็บคลาสฟอร์มควบคุมการแสดงผล

ยูนิตนี้อยู่ในส่วนของ Presentation Layer

Samong Framework จะใช้วัตถุงาน (Task Object)ในการ ควบคุมการสร้างและทำลายวัตถุฟอร์ม (Form Object) ทำให้นำคำสั่งการในการจัดการ ฟอร์มกลับมาใช้ซ้ำได้อย่างมีประสิทธิภาพ นำไปใช้งานได้หลายแพลตฟอร์ม

การเขียนคลาสควบคุมการแสดงผล มี 3 ส่วนคือ

  1. Form Class สำหรับแสดงผล
  2. InnerForm Class สำหรับควบคุมภายใน
  3. FormCell Class สำหรับประสานกับวัตถุงาน

Tip

  • DisableEvents คือระงับการตอบสนองกับผู้ใช้หรือไม่รับคำสั่งใดๆ
  • EnableEvents คือตอบสนองกับผู้ใช้หรือรับคำสั่งมาดำเนินการต่างๆ
  • วัตถุคุณสมบัติ (Properties) ช่วยลดการขึ้นต่อกันระหว่างยูนิต
  • วัตถุคุณสมบัติ (Properties) มีใช้เฉพาะชิ้นส่วนของตระกูล iSTEE
  • การใช้ตัวแปรเก็บตำแหน่งที่อยู่ใน Procedure ช่วยเพิ่มความเร็วการทำงาน
  • การ override คำสั่งคือเขียนรายละเอียดคำสั่งเพิ่มเติมจากคำสั่งต้นกำเนิด

unit SteeDemo.TaskForms;


interface


uses

System.SysUtils, System.Types, System.UITypes, System.Classes,

System.Variants,


Stee.Nature.Systems, Stee.Nature.Apps,

Stee.FMX.Forms,


FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Edit,

FMX.Controls.Presentation, FMX.StdCtrls, FMX.ScrollBox, FMX.Memo;


type

TSteeDemoTask001Form = class(TjgFMXTaskForm)

Label1: TLabel;

Edit1: TEdit;

Button_Save: TButton;

Label2: TLabel;

Memo1: TMemo;

Button_Close: TButton;

private

protected

procedure DoCreate; override;

public

end;


TSteeDemoCustomTask001InnerForm = class(TjgFMXTaskInnerForm)

private

function MyForm: TSteeDemoTask001Form;

protected

procedure DoEnableEvents; override;

procedure DoDisableEvents; override;

procedure DoReadControls; override;

public

procedure Click_Save(Sender: TObject);

End;


TSteeDemoTask001InnerForm = class(TSteeDemoCustomTask001InnerForm)

private

public

End;


TSteeDemoTask001FormCell = class(TjgFMXFormCell)

private

protected

procedure DoCreate; override;

public

End;


implementation


{$R *.fmx}


{ TSteeDemoTask001Form }


procedure TSteeDemoTask001Form.DoCreate;

begin

inherited; //ให้ไปทำคำสั่งคลาสต้นกำเนิดลำดับชั้นก่อนหน้า

InnerUICellClass:=TSteeDemoTask001InnerForm;

end;


{ TSteeDemoTask001FormCell }


procedure TSteeDemoTask001FormCell.DoCreate;

begin

inherited; //ให้ไปทำคำสั่งคลาสต้นกำเนิดลำดับชั้นก่อนหน้า

Features.FormClass:=TSteeDemoTask001Form; //ระบุคลาสฟอร์ม

Features.FormControllerClass:=TjgFMXFormController; //ระบุหน่วยบริการแสดงผลแยกตามแพลตฟอร์ม

end;


{ TSteeDemoCustomTask001InnerForm }


function TSteeDemoCustomTask001InnerForm.MyForm: TSteeDemoTask001Form;

begin

Result:=TSteeDemoTask001Form(Form);

end;


procedure TSteeDemoCustomTask001InnerForm.DoDisableEvents;

var

oForm: TSteeDemoTask001Form; //สร้างตัวแปร(Instance)เก็บตำแหน่งที่อยู่วัตถุ

begin

inherited; //ให้ไปทำคำสั่งคลาสต้นกำเนิดลำดับชั้นก่อนหน้า

oForm:=MyForm; //กำหนดตำแหน่งที่อยู่วัตถุให้กับตัวแปร (Instance)

oForm.Button_Save.OnClick:=Nil; //ระงับการตอบสนองปุ่ม save

oForm.Button_Close.OnClick:=Nil; //ระดับการตอบสมองปุ่ม close

end;


procedure TSteeDemoCustomTask001InnerForm.DoEnableEvents;

var

oForm: TSteeDemoTask001Form;

begin

inherited; //ให้ไปทำคำสั่งคลาสต้นกำเนิดลำดับชั้นก่อนหน้า

oForm:=MyForm; //กำหนดตำแหน่งที่อยู่วัตถุให้กับตัวแปร (Instance)

oForm.Button_Save.OnClick:=Click_Save; //กำหนดการตอบสนองปุ่ม save

oForm.Button_Close.OnClick:=Click_Close; //ระงับการตอบสนองปุ่ม close

end;


procedure TSteeDemoCustomTask001InnerForm.DoReadControls;

var

oTask: TjgTask;

oInfo: TjgProperties;

oForm: TSteeDemoTask001Form;

begin

inherited; //ให้ไปทำคำสั่งคลาสต้นกำเนิดลำดับชั้นก่อนหน้า

oTask:=Task;

oForm:=MyForm;

oInfo:=oTask.Properties;

oInfo['FullName'].AsString:=oForm.Edit1.Text;

oInfo['Address'].AsString:=oForm.Memo1.Text;

end;


procedure TSteeDemoCustomTask001InnerForm.Click_Save(Sender: TObject);

begin

ReadControls; //อ่านข้อมูลจากฟอร์มส่งเก็บในคุณสมบัติวัตถุงาน

Task.Operate; //สั่งวัตถุงาน ดำเนินการตามข้อมูลที่ได้รับ

end;


end.

 NameDescription
TSteeDemoCustomTask001InnerForm

คลาสต้นกำเนิดหน่วยควบคุมการทำงานภายในวัตถุฟอร์ม

TSteeDemoTask001Form

คลาสฟอร์มแสดงผลหรือบันทึกข้อมูล

TSteeDemoTask001FormCell

คลาสฟอร์มเซลล์หน่วยเชื่อมประสานวัตถุฟอร์มกับวัตถุงาน

TSteeDemoTask001InnerForm

คลาสหน่วยควบคุมการทำงานภายในวัตถุฟอร์ม

Top