You are on page 1of 13

Thc tp cng nhn

BI 5

LP TRNH IU KHIN THIT B


I.MC CH YU CU - Vi ngnh t ng ha ngy cng pht trin, dng my tnh gim st v iu khin ngy cng ph bin. Vi s h tr ca my tnh v ngn ng lp trnh ta s lu tr, gim st, iu khin h thng t ng. - Yu cu sinh vin phi bit s dng Delphi v cng ni tip NI DUNG C rt nhiu ngn ng lp trnh c dng trn my tnh iu khin v gim st nhng gii hn trong bi thc hnh ny ta ch xt n ngn ng lp trnh Delphi. Delphi l mt ngn ng lp trnh c kh bin dch mnh m, cc ng dng Windows trc quan, giao tip vi thit b bn ngoi thun li. Trong phn thc tp ny ch gii hn dng Delphi giao tip thit b bn ngoi qua cng Com. 2.1. Mi trng pht trin ca Delphi.

II.

Thc tp cng nhn

Trang 19

Thc tp cng nhn

ToolBar Object Inspector r

Code Explorer

Code Editor

Form Designer

Component Pallet

2.1.1. Ca s chnh ca chng trnh Delphi Ca s chng trnh Delphi c xem nh trung tm iu khin ca mi trng son tho v bin dch ng dng. Ca s chnh chia lm 3 phn nh: Trnh n, thanh toolbar v bng cha cc cng c xy dng ng dng. Trnh n chia ra lm nhiu mc chn vi cc nhm chc nng khc nhau bin dch, chy, g li ng dng, thit lp cu hnh cho mi trng Delphi, son tho m lnh. Ban cng c th d dng tm thy nhng chc nng tng ng ny trn cc nt nhn ca thanh toolbar. 2.1.2. Thanh Toolbar. ToolBar l ni cha cc nt nhn tt thay th cho nhng mc chn trn trnh n nh: m/ng tp tin d n, chy chng trnh, g li ng dng, xem ti liu tr gip. Khi bn di chuyn chut ln tng nt nhn, Delphi s hin th mt thng ip nh gi l ToolTip cho bit chc nng c th ca nt nhn. 2.1.3 Ca s thit k Form (Form Designer).
Thc tp cng nhn Trang 20

Thc tp cng nhn

Ca s thit k Form hay Form Desiger khi u l mt ca trng, y chnh l ca s thc t dnh cho chng trnh ng dng ca bn. Nhng g bn thit k trc quan trn Form gn nh s l 95% hnh nh ca chng trnh trong thc t. Bn tng tc vi ca s Form bng cch chn mt i tng trn bng cng c, nm ko v t nhng i tng ny vo mt v tr thch hp trn Form. Sau , bn c th dng chut hoc bn phm chnh sa, thay v tr cho thch hp. Ngoi ra bn c th thay i hnh dng, mu sc, cch ng x i tng khi ngi ta dng tc ng vo chng thng qua ca s Object Inspector v ca s son tho m lnh Code.

2.1.4. Ca s Object Inspector Vi ca s Object Inspector bn c th b sungm thay i thuc tnh (properties) ca cc thnh phn i tng ang c trn Form mt cch trc quan. Chng trnh cng s qui nh cch ng x ca tng i tng thng qua cc tnh hung (event) qui nh sn trong ca s Object Inspector. Thuc tnh l tp hp d liu cho bit cc thng tin v thut tnh ca mt i tng nh chiu rng, chiu cao, mu sc, Font ch . Hnh nh i tng m bn nhn thy trn mng hnh, chnh l tp hp nhiu thut tnh khc nhau ca i tng to nn. Tnh hung l mt on m lnh c dng p ng mt yu cu no ca delphi v ca h thng. Khi ngi dng kch chut vo i tng , khi mt phm c nhn hay khi Windows cn v li mt vng no trn mn hnh, bn cng nhn c mt tnh hung ring bit x l. 2.1.5. Ca s son tho m lnh Code Editor.

Thc tp cng nhn

Trang 21

Thc tp cng nhn

Ca s son tho m lnh Code Editor l ni tht s th hin ni dung ca chng trnh. l ni bn g lnh, thit k ni dung cho th tc, hm, ci t cc phng thc cho lp. Bn s khng phi vit ton b m lnh cho chng trnh. Delphi t ng sn sinh khung m nh sn. Nhim v ca lp trnh vin n gin ch cn hiu ngha nhng on m Delphi sinh ra v chn vo nhng lnh x l thch hp. Nu mun, bn vn c th t to ly b khung bng cch vit lnh th cng, nhng tr khi bn nm vng Delphi v mun o su thm, cn khng th hy Delphi t ng thc hin nhng cng vic . V d: Chng trnh hin th chui Hello World trn mt ca s Windows. Chn File/New Application t trnh n. Delphi to ra cho bn mt ca s Form t trong Unit.pas cng vi tp tin d n Project1.dpr. Chn File/ Save All. Hy t tn cho Unit l MainFrm.pas thay cho Unit1.Pas v t tn cho tp tin d n l HelloWin.dpr thay cho project.dpr Trn bng cng c Standard hy chn i tng Label t vo ca s Form. Vo ca s Object Inspector, nhp thuc tnh cho i tng Label nh sau: Caption Hello World Font Times New Roman, size 12, Bold

Nhn Ctrl + F9 bin dch chng trnh v nhn F9 gi chng trnh thc thi. Bn s thy chng trnh hin th ch Hello World in m. Hy dng chut nm ko v di chuyn ca s n cc v tr khc nhau trn mn hnh. to tp tin .exe bn chn Project/Buid all. Delphi s xy dng tp tin thc thi HelloWin.exe. Bn c th chp duy nht mt tp tin ny cho chy trn mi h iu hnh Windows 32 bit. 2.2. Cc thnh phn iu khin ca Windows. Windows cung cp cc thnh phn iu khin giao din ha tng tc vi ngi dng thng qua chut v bn phm. Bn c th tm thy i tng ny trn bng cng c Standard ca mi trng Delphi. 2.2.1. Nt nhn (Button)

Thc tp cng nhn

Trang 22

Thc tp cng nhn

Mc d c ch lm vic ca nt nhn rt n gin, n li l thnh phn kh quan trng trong cc giao din s dng ha. Nt nhn c Delphi t trong lp i tng c tn l TBUTTON. Tnh hung thng s dng nht ca nt nhn l OnClick. Khi ngi dng kch chut vo nt nhn, tnh hung ny s c gi phn ng li bng tc v no . 2.2.2. Nhn (Label) Nhn l thnh phn n gin nht trong th vin VCL. i tng nhn ch dng trnh by mt chui vn bn thng thng, nhm mc ch m t thm thng tin cho cc i tng khc. Ta cng c th dng nhn lm cng c a kt qu ra mn hnh di dng chui. Nhn c Delphi t trong lp i tng c tn l TLABEL. Thuc tnh thng s dng nht ca nhn l: Thuc tnh ngha Caption Th hin ni dung nhn Font inh Font ch, kiu ch cho nhn Transparent Cho php mu nn ca nhn trng vi mu nn ca Form 2.2.3. nh du (CheckBox) nh du c dng rt ph bin trong cc chng trnh Windows. N cho php ngi dng chn hoc b chn yu cu no . Mi ln bn kch chut vo CheckBox , n cho php thay i trng thi nh du. nh du Checkbox c Delphi t trong lp i tng c tn l TCHECKBOX. Thuc tnh thng dng nht ca Checkbox l Checked mang kiu Boolean. Nu Checked = true th nh du c chn. Nu Checked = false th nh du khng chn. Khi nh du c kch chut yu cu thy i trng thi, th tnh hung OnClick s pht sinh. 2.2.4. vn bn (Editbox). vn bn, cn gi l Edit box. y l thnh phn nhp liu n gin. Bn c php nhp vo chui vn bn, chnh sa, di chuyn con nhy son tho bng cc phm mi tn. Vi vn bn, bn ch c php nhp mt dng vn bn duy nht. vn bn c Delphi t trong lp i tng c tn l TEDIT. Thut tnh thng c s dng nht ca i tng vn bn l thuc tnh Text. N tr v mt chui, cho bit ni dung d liu m ngi dng nhp vo. Mi khi d liu hay ni dung ca thuc tnh text b thay i, tnh hung Onchange s c gi. Bn c th s dng tnh hung ny kim tra d liu cho ngi dng nhp vo, cp nht li cc thng tin c lin quan n d liu. 2.2.5. Vng vn bn (Memo).

Thc tp cng nhn

Trang 23

Thc tp cng nhn

Memo cho php nhp vo cng lc nhiu dng d liu. Bn c th dng chng trnh Memo to chng trnh son tho vn bn, tng ng chng trnh Notepad.exe. Bn c th dng Memo xut ra chui vn bn. Vng vn bn c Dephi t trong lp i tng c tn TMEMO. Thuc tnh thng c s dng nht ca i tng Memo l Lines. Thuc tnh Line c kiu Tstring, c dng qun l danh sch cc dng d liu m Memo ang c. Bn c th gi phng thc v thuc tnh ph ca Lines nh sau. ngha Thm vo mt Memo mt dng mi Tr v s dng trong Memo Xa tt c cc dng m Memo ang cha Np cc dng vn bn vo Memo t tp tin Lines.SaveTofile Lu d liu ca Memo xung tp tin Thuc tnh Text ca Memo l mt chui bao gm tt c cc dng trong Memo cng li, mi dng cch nhau bng k t 10 v 13. Tnh hung thng s dng nht ca Memo l OnChange. Tnh hung ny c gi khi ngi dng sa i hoc thm ni dung vo Memo. Chn File/New Application t trnh n t Form1 i tng Tedit, 1 i tng Tmemo, 3 i tng Tbutton v mt i tng Tlabel thit lp tnh hung v phng thc x l tng i tng nh sau: i tng Thuc tnh Gi tr TFORM Name Form1 Caption Delphi Notepad OnCloseQuery FormCloseQuery TMEMO Name MemoEditor Lines() Xa trng Onchange MemoEditorChange TEDIT Name EditFileName Tex C:\My Documents\thu.tex TLABEL Name Label1 Caption File Name TBUTTON Name ButtLoad Caption Load OnClick ButtLoadClick TBUTTON Name ButtSave Caption Save OnClick ButtSaveClick TBUTTON Name ButtClear Caption Clear OnClick ButtClearClick
Thc tp cng nhn Trang 24

Thuc tnh Lines.add Lines.Count Lines.Clear Lines.LoadFromFile

Thc tp cng nhn

unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) editFileName: TEdit; buttLoad: TButton; buttSave: TButton; Button3: TButton; MemoEditor: TMemo; Label1: TLabel; procedure buttLoadClick(Sender: TObject); procedure buttSaveClick(Sender: TObject); procedure MemoEditorChange(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure Button3Click(Sender: TObject); procedure editFileNameChange(Sender: TObject); private { Private declarations } isModified:Boolean; public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.buttLoadClick(Sender: TObject); begin MemoEditor.Lines.LoadFromFile(editFileName.Text); isModified:=False; end; procedure TForm1.buttSaveClick(Sender: TObject); begin if isModified then MemoEditor.Lines.SaveToFile(editfilename.Text); end; procedure TForm1.MemoEditorChange(Sender: TObject); begin isModified:=true; end;
Thc tp cng nhn Trang 25

Thc tp cng nhn

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin if ismodified then if MessageBox(handle,'Do you want to save file','Warning',MB_YESNO)=ID_YES then ButtSaveClick(Sender); end; procedure TForm1.Button3Click(Sender: TObject); begin MemoEditor.Lines.Clear; end; procedure TForm1.editFileNameChange(Sender: TObject); begin end; end. Sau khi nhn F9 ta c

2.2.6. Trnh n chnh (MainMenu) Trnh n l i tng ha bn thng thy v rt hay dng trong cc chng trnh ng dng. Trnh n chnh (main menu) l mt dy cc la chn nm pha trn ca s. Khi click chut vo mt la chn no , bn s nhn c danh sch cc mc chn khc s xung. Chn mt m trn trnh n, cng ng ngha vi vic yu cu chng trnh thc hin mt tc v no . i tng ca trnh n chnh Delphi t tn l TMAINMENU Di y l cc bc hng dn bn cch xy dng mt thanh trnh n chnh cho ca s Form. Chn File/ New Application, t ln Form i tng trnh n TmainMenu.
Trang 26

Thc tp cng nhn

Thc tp cng nhn

xy dng cc mc chn trnh n, bn hy kch chut vo i tng TmainMenu, hoc chn thuc tnh Items t ca s Object Inspector. Delphi s hin th ca s thit k trnh n cho php bn nhp vo tng mc chn. Bn bt u nhp vo tiu cho tng mc chn bng cch thay i thuc tnh caption trong ca s Object Inspector. Delphi s t to ra mt mc chn rng tip theo bn c th thm vo mc chn mi. Mi mc chn c xem l mt i tng c tn gi l TMENUITEM. chn trnh n con cho mt mc chn, bn nhn phm phi chut vo mc chn Delphi hin th chng trnh n tt, tip theo hy chn Create Submenu to trnh n con.

2.2.7. i tng Timer C l, Timer l thnh phn c t thuc tnh v phng thc x l nht, trong s nhng thnh phn VCL do Delphi cung cp. Tuy nhin , Timer l thnh i tng hu dng v rt th v. Timer do Delphi t trn bng cng c System. Timer c xem l thnh phn VCL khng trc quan,, bi v bn khng nhn thy lc chng trnh thc thi. Thay vo , Timer hot ng pha sau hu trng. N c dng m gian. Nu c khong thi gian no tri qua, m lnh t trong phng thc x l tnh hung OnTimer s c gi thc thi. Nu Ti vn cn hiu lc th OnTimer s c thc thi u n. Timer c Delphi dt lp i tng c tn TTIMER Thuc tnh thng c s dng nht ca Timer l Thuc tnh ngha Interval Khong thi gian nh k ca Timer c Windows cho php hot ng. Gi tr Interval c tnh bng 1/1000 giy. Interval =1000 tng ng vi khong thi gian 1 giy. Enabled TRUE: Timer trng thi hot ng. FALSE: Timer t trng thi v hiu lc. Vi d trnh hin th thi gian. procedure TForm1.FormCreate(Sender: TObject); begin
Thc tp cng nhn Trang 27

Thc tp cng nhn

caption:=TimeTostr(now()); end; Kt qu.

2.2.8. i tng Comport y l thnh phn Delphi dng giao tip vi thit b bn ngoi thng qua cng Com. Comport c Delphi t lp i tng c tn TCOMPORT Tnh hung thng c s dng ca i tng TCOMPORT l OnAfterClose ( ng cng Com), OnAfterOpen ( m cng Com), OnRxChar (nhn d liu t cng Com). V d: Vit mt chng trnh xut nhp d liu thng qua cng Com Chn File/New Application t trnh n t Form1 i tng Tedit, 1 i tng Tmemo, 5 i tng Tbutton thit lp tnh hung v phng thc x l tng i tng nh sau: i tng Thuc tnh Gi tr TFORM Name Form1 Caption Delphi Notepad TMEMO Name Memo1 Lines() Xa trng TEDIT Name Edit1 Tex Xa trng TBUTTON Name ButtonOpen Caption Open TBUTTON Name ButtonSetting Caption Setting TBUTTON Name ButtonSend Caption Send TBUTTON Name ButtonClear Caption Clear TBUTTON Name ButtonExit Caption Exit TCOMPORT Name Comport

Thc tp cng nhn

Trang 28

Thc tp cng nhn

OnRxChar

ComportRxChar

unit cong; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, CPort; type TForm1 = class(TForm) Panel1: TPanel; Memo1: TMemo; ButtonOpen: TButton; Edit1: TEdit; ButtonSend: TButton; ButtonExit: TButton; ComPort: TComPort; ButtonSettings: TButton; ButtonClear: TButton; procedure ButtonExitClick(Sender: TObject); procedure ButtonOpenClick(Sender: TObject); procedure ButtonSettingsClick(Sender: TObject); procedure ButtonSendClick(Sender: TObject); procedure ComportRxChar(Sender: TObject; Count: Integer); procedure ButtonClearClick(Sender: TObject); procedure Memo1Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} // ng cng Com v exit chng trnh procedure TForm1.ButtonExitClick(Sender: TObject); begin Comport.Close; Close; end; // ng m Cng Com procedure TForm1.ButtonOpenClick(Sender: TObject); begin if ComPort.Connected then // Kim tra cng Com c m khng
Thc tp cng nhn Trang 29

Thc tp cng nhn

begin Comport.Close; // Nu m th ta ng cng li v hin th Close ButtonOpen.Caption:='Close'; end else begin Comport.Open; ButtonOpen.Caption:='Open'; end; end; // t cc tham s cho cng Com procedure TForm1.ButtonSettingsClick(Sender: TObject); begin Comport.ShowSetupDialog; Comport.Open; end; // Gi d liu ra cng Com procedure TForm1.ButtonSendClick(Sender: TObject); var i: byte; s: string; begin if edit1.Text='' then exit; s:=edit1.text; for i:=1 to length(s) do comport.WriteStr(s[i]); //Nhn d liu t Edit1 ghi ra cng Com end; // Nhn d liu t cng com xut ra Memo1 procedure TForm1.ComportRxChar(Sender: TObject; Count: Integer); var str:string; begin comport.ReadStr(str,count); Memo1.Text := Memo1.Text + Str; end; // Xa vng Memo1 procedure TForm1.ButtonClearClick(Sender: TObject); begin Memo1.Lines.Clear; end; procedure TForm1.Memo1Change(Sender: TObject); begin end; end.
Thc tp cng nhn Trang 30

Thc tp cng nhn

Khi chy chng trnh ta c. III. P H N

THC TP C TH Vit chng trnh xut nhp d liu. - Thit lp cng com - ng, m cng - Gi d liu ra cng COM - Nhn d liu t cng COM v hin th *. Yu cu sinh vin thao tc nhanh, trang tr tt.

Thc tp cng nhn

Trang 31

You might also like