Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 19 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
19
Dung lượng
733 KB
Nội dung
Xưởng điện tử
Bài 6: Lập trình
BÀI 6 LẬP TRÌNH ĐIỀU KHIỂN THIẾT BỊ
I. MỤC ĐÍCH YÊU CẦU
-
Với ngành tự động hóa ngày càng phát triển, dùng máy tính để
giám sát và điều khiển ngày càng phổ biến. Với sự hổ trợ của máy tính
và ngôn ngữ lập trình ta sẽ lưu trữ, giám sát, điều khiển hệ thống tự
động.
-
Yêu cầu sinh viên phải biết sử dụng Delphi và cổng nối tiếp
II. NỘI DUNG
Có rất nhiều ngôn ngữ lập trình được dùng trên máy tính để điều khiển
và giám sát nhưng giới hạn trong bài thực hành này ta chỉ xét đến ngôn ngữ
lập trình Delphi.
Delphi là một ngôn ngữ lập trình có khả biên dịch mạnh mẽ, các ứng
dụng Windows trực quan, giao tiếp với thiết bị bên ngoài thuận lợi.
Trong phần thực tập này chỉ giới hạn dùng Delphi để giao tiếp thiết bị bên
ngoài qua cổng Com.
2.1.
Môi trường phát triễn của Delphi.
Thực tập công nhân Trang 22
ToolBar
Xưởng điện tử
Bài 6: Lập trình
2.1.1. Cửa sổ chính của chương trình Delphi
Của sổ chương trình Delphi được xem như trung tâm điều khiển của
môi trường soạn thảo và biên dịch ứng dụng.
Cửa sổ chính chia làm 3 phần nhỏ: Trình đơn, thanh toolbar và bảng
chứa các công cụ để xây dựng ứng dụng.
Trình đơn chia ra làm nhiều mục chọn với các nhóm chức năng khác
nhau biên dịch, chạy, gỡ lỗi ứng dụng, thiết lập cấu hình cho môi trường
Delphi, soạn thảo mã lệnh…. Ban cũng có thể dẽ dàng tìm thấy những chức
năng tương ứng này trên các nút nhấn của thanh toolbar.
2.1.2. Thanh Toolbar.
Object
Inspector
Code
Explorer
Code
Editor
Form
Designer
Thực tập công nhân Trang 23
Component
Pallet
Xưởng điện tử
Bài 6: Lập trình
ToolBar là nơi chứa các nút nhấn tắt thay thế cho những mục chọn
trên trình đơn như: mở/đóng tập tin dự án, chạy chương trình, gỡ lỗi
ứng dụng, xem tài liệu trợ giúp.
Khi bạn di chuyển chuột lên từng nút nhấn, Delphi sẽ hiển thị một
thông điệp nhỏ gọi là ToolTip cho biết chức năng cụ thể của nút nhấn.
2.1.3 Cửa sổ thiết kế Form (Form Designer).
Cửa sổ thiết kế Form hay Form Desiger khởi đầu là một cửa trống, đây
chính là cửa sổ thực tế dành cho chương trình ứng dụng của bạn.
Những gì bạn thiết kế trực quan trên Form gần như sẽ là 95% hình ảnh
của chương trình trong thực tế. Bạn tương tác với cửa sổ Form bằng cách
chọn một đối tượng trên bảng công cụ, nắm – kéo và đặt những đối
tượng này vào một vị trí thích hợp trên Form. Sau đó, bạn có thể dùng
chuột hoặc bàn phím để chỉnh sửa, thay vị trí cho thích hợp. Ngoài ra
bạn có thể thay đổi hình dáng, màu sắc, cách ứng xử đối tượng khi người
ta dùng tác động vào chúng thông qua cửa sổ Object Inspector và cửa sổ
soạn thảo mã lệnh Code.
Thực tập công nhân Trang 24
Xưởng điện tử
Bài 6: Lập trình
2.1.4. Cửa sổ Object Inspector
Với cửa sổ Object Inspector bạn có thể bổ sungm thay đổi thuộc tính
(properties) của các thành phần đối tượng đang có trên Form một cách trực
quan. Chương trình cũng sẽ qui định cách ứng xử của từng đối tượng thông
qua các tình huống (event) qui định sẵn trong cửa sổ Object Inspector.
Thuộc tính là tập hợp dữ liệu cho biết các thông tin và thuột tính của
một đối tượng như chiều rộng, chiều cao, màu sắc, Font chữ …. Hình ảnh
đối tượng mà bạn nhìn thấy trên màng hình, chính là tập hợp nhiều thuột tính
khác nhau của đối tượng tạo nên.
Tình huống là một đoạn mã lệnh được dùng để đáp ứng một yêu cầu
nào đó của delphi và của hệ thống. Khi người dùng kích chuột vào đối tượng
, khi một phím được nhấn hay khi Windows cần vẽ lại một vùng nào đó trên
màn hình, bạn cũng nhận được một tình huống riêng biệt để xử lý.
2.1.5. Cửa sổ soạn thảo mã lệnh Code Editor.
Thực tập công nhân Trang 25
Xưởng điện tử
Bài 6: Lập trình
Cửa sổ soạn thảo mã lệnh Code Editor là nơi thật sự thể hiện nội dung
của chương trình. Đó là nơi bạn gõ lệnh, thiết kế nội dung cho thủ tục, hàm,
cài đặt các phương thức cho lớp…. Bạn sẽ không phải viết toàn bộ mã lệnh
cho chương trình. Delphi tự động sản sinh khung mã định sẵn. Nhiệm vụ của
lập trình viên đơn giản chỉ cần hiểu ý nghĩa những đoạn mã Delphi sinh ra
và chèn vào đó những lệnh xử lý thích hợp.
Nếu muốn, bạn vẫn có thể tự tạo lấy bộ khung bằng cách viết lệnh thủ
công, nhưng trừ khi bạn đã nắm vững Delphi và muốn đào sâu thêm, còn
không thì hãy để Delphi tự động thực hiện những công việc đó.
Ví dụ: Chương trình hiển thị chuỗi ‘ Hello World’ trên một cửa sổ Windows.
•
Chọn File/New Application từ trình đơn. Delphi tạo ra
cho bạn một cửa sổ Form đặt trong Unit.pas cùng với tập tin dự án
Project1.dpr.
•
Chọn File/ Save All. Hãy đặt tên cho Unit là
MainFrm.pas thay cho
Unit1.Pas và đặt tên cho tập tin dự án là HelloWin.dpr thay cho project.dpr
•
Trên bảng công cụ Standard hãy chọn đối tượng Label
đặt vào cửa sổ Form.
•
Vào cửa sổ Object Inspector, nhập thuộc tính cho đối
tượng Label như sau:
Caption
Font
Hello World
Times New Roman, size 12,
Bold
Thực tập công nhân Trang 26
Xưởng điện tử
Bài 6: Lập trình
Nhấn Ctrl + F9 để biên dịch chương trình và nhấn F9 để gọi chương trình
thực thi. Bạn sẽ thấy chương trình hiển thị chữ Hello World in đậm. Hảy
dùng chuột nắm kéo và di chuyển cửa sổ đến các vị trí khác nhau trên màn
hình.
Để tạo tập tin .exe bạn chọn Project/Buid all. Delphi sẽ xây dựng tập
tin thực thi HelloWin.exe. Bạn có thể chép duy nhất một tập tin này cho
chạy trên mọi hệ điều hành Windows 32 bit.
2.2.
Các thành phần điều khiển của Windows.
Windows cung cấp các thành phần điều khiển giao diện đồ họa để tương
tác với người dùng thông qua chuột và bàn phím. Bạn có thể tìm thấy đối
tượng này trên bảng công cụ Standard của môi trường Delphi.
2.2.1. Nút nhấn (Button)
Mặc dù cơ chế làm việc của nút nhấn rất đơn giản, nó lại là thành
phần khá quan trọng trong các giao diện sử dụng đồ họa.
Nút nhấn được Delphi đặt trong lớp đối tượng có tên là TBUTTON.
Tình huống thường sử dụng nhất của nút nhấn là OnClick. Khi người dùng
kích chuột vào nút nhấn, tình huống này sẽ được gọi để phản ứng lại bằng
tác vụ nào đó. 2.2.2. Nhãn (Label)
Nhãn là thành phần đơn giản nhất trong thư viện VCL. Đối
Thực tập công nhân Trang 27
Xưởng điện tử
Bài 6: Lập trình
tượng nhãn chỉ dùng để trình bày một chuỗi văn bản thông thường, nhằm
mục đích mô tả thêm thông tin cho các đối tượng khác. Ta cũng có thể dùng
nhãn để làm công cụ đưa kết quả ra màn hình dưới dạng chuỗi.
Nhãn được Delphi đặt trong lớp đối tượng có tên là TLABEL. Thuộc
tính thường sử dụng nhất của nhãn là:
Thuộ c tính
Caption
Font
Transparent
Ý nghĩ a
Thể hiện nộ i dung nhãn
Đinh Font chữ, kiểu chữ cho nhãn
Cho phép màu nền của nhãn trùng
với màu nền củ a Form
2.2.3. Ô đánh dấu (CheckBox)
Ô đánh dấu được dùng rất phổ biến trong các chương trình Windows. Nó
cho phép người dùng chọn hoặc bỏ chọn yêu cầu nào đó. Mổi lần bạn kích
chuột vào ô CheckBox , nó cho phép thay đổi trạng thái đánh dấu.
Ô đánh dấu Checkbox được Delphi đặt trong lớp đối tượng có tên là
TCHECKBOX.
Thuộc tính thường dùng nhất của Checkbox là Checked mang kiểu Boolean.
Nếu Checked = true thì ô đánh dấu được chọn. Nếu Checked = false thì ô
đánh dấu không chọn. Khi ô đánh dấu được kích chuột để yêu cầu thây đổi
trạng thái, thì tình huống OnClick sẽ phát sinh.
2.2.4. Ô văn bản (Editbox).
Ô văn bản, còn gọi là Edit box. Đây là thành phần nhập liệu đơn giản.
Bạn được phép nhập vào chuỗi văn bản, chỉnh sửa, di chuyển con nháy để
soạn thảo bằng các phím mũi tên. Với ô văn bản, bạn chỉ được phép nhập
một dòng văn bản duy nhất.
Ô văn bản được Delphi đặt trong lớp đối tượng có tên là TEDIT.
Thực tập công nhân Trang 28
Xưởng điện tử
Bài 6: Lập trình
Thuột tính thường được sử dụng nhất của đối tượng ô văn bản là thuộc tính
Text. Nó trả về một chuổi, cho biết nội dung dữ liệu mà người dùng nhập
vào. Mổi khi dữ liệu hay nội dung của thuộc tính text bị thay đổi, tình huống
Onchange sẽ được gọi. Bạn có thể sử dụng tình huống này để kiểm tra dữ
liệu cho người dùng nhập vào, cập nhật lại các thông tin có liên quan đến dữ
liệu.
2.2.5. Vùng văn bản (Memo).
Memo cho phép nhập vào cùng lúc nhiều dòng dữ liệu. Bạn có thể dùng
chương trình Memo để tạo chương trình soạn thảo văn bản, tương đương
chương trình Notepad.exe. Bạn có thể dùng Memo để xuất ra chuỗi văn bản.
Vùng văn bản được Dephi đặt trong lớp đối tượng có tên TMEMO.
Thuộc tính thường được sử dụng nhất của đối tượng Memo là Lines. Thuộc
tính Line có kiểu Tstring, được dùng để quản lý danh sách các dòng dữ liệu
mà Memo đang có. Bạn có thể gọi phương thức và thuộc tính phụ của Lines
như sau.
Thuộ c tính
Lines.add
Lines.Count
Lines.Clear
Ý nghĩ a
Thêm vào một Memo một dòng mớ i
Trả về số dòng trong Memo
Xóa tất cả các dòng mà Memo đang
Lines.LoadFromFile
chứ a
Nạp các dòng văn bản vào Memo từ
tập tin
Lines.SaveTofile
Lưu dữ liệu của Memo xuống tậ p tin
Thuộc tính Text của Memo là một chuỗi bao gồm tất cả các dòng trong
Memo cộng lại, mỗi dòng cách nhau bằng ký tự 10 và 13.
Tình huống thường sử dụng nhất của Memo là OnChange. Tình huống này
được gọi khi người dùng sửa đổi hoặc thêm nội dung vào Memo.
Thực tập công nhân Trang 29
Xưởng điện tử
Bài 6: Lập trình
Chọn File/New Application từ trình đơn đặt Form1 đối tượng Tedit, 1 đối
tượng Tmemo, 3 đối tượng Tbutton và một đối tượng Tlabel thiết lập tình
huống và phương thức xử lý từng đối tượng như sau:
Đối tượ ng
TFORM
TMEMO
TEDIT
Thuộ t tính
Giá trị
Name
Form1
Caption
Delphi Notepad
OnCloseQuery
FormCloseQuery
Name
MemoEditor
Lines(…)
Xóa trắng
Onchange
MemoEditorChange
Name
EditFileName
Tex
C:\My
Documents\thu.tex
TLABEL
TBUTTON
TBUTTON
TBUTTON
Name
Label1
Caption
File Name
Name
ButtLoad
Caption
Load
OnClick
ButtLoadClick
Name
ButtSave
Caption
Save
OnClick
ButtSaveClick
Name
ButtClear
Caption
Clear
OnClick
ButtClearClick
Thực tập công nhân Trang 30
Xưởng điện tử
Bài 6: Lập trình
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);
editFileNameChange(Sender: TObject); private
{ Private declarations }
isModified:Boolean;
public
{ Public
declarations } end; var
Thực tập công nhân Trang 31
procedure
Xưởng điện tử
Bài 6: Lập trình
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;
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
Thực tập công nhân Trang 32
Xưởng điện tử
Bài 6: Lập trình
MemoEditor.Lines.Clear;
end;
procedure TForm1.editFileNameChange(Sender:
TObject); begin end; end.
Sau khi nhấn F9 ta có
2.2.6. Trình đơn chính (MainMenu)
Trình đơn là đối tượng đồ họa bạn thường thấy và rất hay dùng trong
các chương trình ứng dụng. Trình đơn chính (main menu) là một dãy các lựa
chọn nằm phía trên cửa sổ. Khi click chuột vào một lựa chọn nào đó, bạn sẽ
nhận được danh sách các mục chọn khác sổ xuống. Chọn một mụ trên trình
đơn, cũng đồng nghĩa với việc yêu cầu chương trình thực hiện một tác vụ
nào đó.
Đối tượng của trình đơn chính Delphi đặt tên là TMAINMENU
Dưới đây là các bước hướng dẫn bạn cách xây dựng một thanh trình đơn
chính cho cửa sổ Form.
•
Chọn File/ New Application, đặt lên Form đối tượng trình đơn
TmainMenu.
Thực tập công nhân Trang 33
Xưởng điện tử
•
Bài 6: Lập trình
Để xây dựng các mục chọn trình đơn, bạn hãy kích chuột vào đối
tượng TmainMenu, hoặc chọn thuộc tính Items từ cửa sổ Object
Inspector. Delphi sẽ hiển thị cửa sổ thiết kế trình đơn cho phép bạn
nhập vào từng mục chọn.
•
Bạn bắt đầu nhập vào tiêu đề cho từng mục chọn bằng cách thay đổi
thuộc tính caption trong cửa sổ Object Inspector. Delphi sẽ tự tạo ra
một mục chọn rỗng tiếp theo để bạn có thể thêm vào mục chọn mới.
Mỗi mục chọn được xem là một đối tượng có tên gọi là
TMENUITEM.
•
Để chọn trình đơn con cho một mục chọn, bạn nhấn phím phải chuột
vào mục chọn để Delphi hiện thị chương trình đơn tắt, tiếp theo hãy
chọn Create Submenu để tạo trình đơn con.
2.2.7. Đối tượng Timer
Có lẽ, Timer là thành phần có ít thuộc tính và phương thức xử lý nhất,
trong số những thành phần VCL do Delphi cung cấp. Tuy nhiên , Timer là
thành đối tượng hữu dụng và rất thú vị. Timer do Delphi đặt trên bảng công
cụ System. Timer được xem là thành phần VCL không trực quan,, bởi vì bạn
không nhìn thấy lúc chương trình thực thi. Thay vào đó, Timer hoạt động
Thực tập công nhân Trang 34
Xưởng điện tử
Bài 6: Lập trình
phía sau hậu trường. Nó được dùng để đếm gian. Nếu có khoảng thời gian
nào đó trôi qua, mã lệnh đặt trong phương thức xử lý tình huống OnTimer sẽ
được gọi thực thi. Nếu Tiẻ vẫn còn hiệu lực thì OnTimer sẽ được thực thi
đều đặn.
Timer được Delphi dặt lớp đối tượng có tên TTIMER
Thuộc tính thường được sử dụng nhất của Timer là
Thuộ
c Ý nghĩ a
tính
Interval
Khoảng thời gian định kỳ của Timer được Windows cho phép
hoạt động. Giá trị Interval được tính bằng 1/1000 giây. Interval
Enabled
=1000 tương đương với khoảng thờ i gian 1 giây.
TRUE: Timer ở trạng thái hoạt động. FALSE: Timer đặt ở trạng
thái vô hiệu lự c.
Vi dụ trình hiển thị thời gian.
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
Kết quả.
caption:=TimeTostr(now());
2.2.8. Đối tượng Comport
cổng Com.
Đây là thành phần Delphi dùng để
giao tiếp với thiết bị bên ngoài thông qua
Comport được Delphi dặt lớp đối tượng có tên TCOMPORT
Thực tập công nhân Trang 35
Xưởng điện tử
Bài 6: Lập trình
Tình huống thường được sử dụng của đối tượng TCOMPORT là
OnAfterClose ( đóng cổng Com), OnAfterOpen ( mở cổng Com), OnRxChar
(nhận dữ liệu từ cổng Com).
Ví dụ:
Viết một chương trình xuất nhập dữ liệu thông qua cổng Com
Chọn File/New Application từ trình đơn đặt Form1 đối tượng Tedit, 1 đối
tượng Tmemo, 5 đối tượng Tbutton thiết lập tình huống và phương thức xử
lý từng đối tượng như sau:
Đối tượ ng
TFORM
Thuộ t tính
Giá trị
Name
Form1
TMEMO
Caption
Name
Delphi Notepad
Memo1
TBUTTON
Lines(…)
Name
Tex
Name
Xóa trắ ng
Edit1
Xóa trắ ng
ButtonOpen
TBUTTON
Caption
Name
Open
ButtonSetting
TBUTTON
Caption
Name
Setting
ButtonSend
TBUTTON
Caption
Name
Send
ButtonClear
TBUTTON
Caption
Name
Clear
ButtonExit
TEDIT
Caption
TCOMPORT Name
OnRxChar
unit cong;
interface
uses
Thực tập công nhân Trang 36
Exit
Comport
ComportRxChar
Xưởng điện tử
Bài 6: Lập trình
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);
ButtonSettingsClick(Sender: TObject);
ButtonSendClick(Sender: TObject);
procedure
procedure
procedure
ComportRxChar(Sender: TObject; Count: Integer);
procedure ButtonClearClick(Sender: TObject);
procedure Memo1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public
declarations } end; var
Form1: TForm1;
Thực tập công nhân Trang 37
Xưởng điện tử
Bài 6: Lập trình
implementation
{$R *.DFM}
// Đóng cổng Com và exit chương trình procedure
TForm1.ButtonExitClick(Sender: TObject); begin
Comport.Close;
Close;
end;
// Đóng mở Cổng Com
procedure TForm1.ButtonOpenClick(Sender: TObject);
begin
if ComPort.Connected then // Kiểm tra cổng Com có mở không
begin
Comport.Close; // Nếu mở thì ta đóng cổng lại và hiển thị ‘ Close’
ButtonOpen.Caption:='Close';
end
else
begin
Comport.Open;
ButtonOpen.Caption:='Open';
end;
end;
// Đặt các tham số cho cổng Com
procedure TForm1.ButtonSettingsClick(Sender: TObject);
begin
Comport.ShowSetupDialog;
Comport.Open;
end;
Thực tập công nhân Trang 38
Xưởng điện tử
Bài 6: Lập trình
// Gửi dữ liệu ra cổng Com
procedure TForm1.ButtonSendClick(Sender:
TObject); var i: byte;
s: string; begin
if edit1.Text='' then exit;
s:=chr(strtoint(edit1.Text));
// s:=edit1.text;
for i:=1 to length(s) do comport.WriteStr(s[i]); //Nhận dữ liệu từ Edit1
ghi ra cổng Com end;
// Nhận dữ liệu từ cổng com xuất ra Memo1
procedure TForm1.ComportRxChar(Sender: TObject; Count:
Integer); var str:string; begin
comport.ReadStr(str,count);
//Memo1.Text := Memo1.Text +
str;
Memo1.Text :=
inttostr(ord(str[1])); end; // Xóa
vùng Memo1
procedure TForm1.ButtonClearClick(Sender: TObject);
begin
Memo1.Lines.Clear;
end;
procedure TForm1.Memo1Change(Sender:
TObject); begin end; end.
Khi chạy chương trình ta được.
Thực tập công nhân Trang 39
Xưởng điện tử
III.
Bài 6: Lập trình
PHẦN THỰC TẬP CỤ THỂ
• Viết chương trình xuất nhập dữ liệu.
-
Giới thiệu về tổ thực tập
-
Thiết lập cổng com
-
Đóng, mở cổng
-
Gửi dữ liệu ra cổng COM - Nhận dữ liệu từ cổng
COM và hiển thị *. Yêu cầu sinh viên thao tác nhanh, trang trí
đẹp.
Thực tập công nhân Trang 40
[...]... trên trình đơn, cũng đồng nghĩa với việc yêu cầu chương trình thực hiện một tác vụ nào đó Đối tượng của trình đơn chính Delphi đặt tên là TMAINMENU Dưới đây là các bước hướng dẫn bạn cách xây dựng một thanh trình đơn chính cho cửa sổ Form • Chọn File/ New Application, đặt lên Form đối tượng trình đơn TmainMenu Thực tập công nhân Trang 33 Xưởng điện tử • Bài 6: Lập trình Để xây dựng các mục chọn trình. .. TForm1.Button3Click(Sender: TObject); begin Thực tập công nhân Trang 32 Xưởng điện tử Bài 6: Lập trình MemoEditor.Lines.Clear; end; procedure TForm1.editFileNameChange(Sender: TObject); begin end; end Sau khi nhấn F9 ta có 2.2 .6 Trình đơn chính (MainMenu) Trình đơn là đối tượng đồ họa bạn thường thấy và rất hay dùng trong các chương trình ứng dụng Trình đơn chính (main menu) là một dãy các lựa chọn nằm phía trên cửa... TObject); begin Memo1.Lines.Clear; end; procedure TForm1.Memo1Change(Sender: TObject); begin end; end Khi chạy chương trình ta được Thực tập công nhân Trang 39 Xưởng điện tử III Bài 6: Lập trình PHẦN THỰC TẬP CỤ THỂ • Viết chương trình xuất nhập dữ liệu - Giới thiệu về tổ thực tập - Thiết lập cổng com - Đóng, mở cổng - Gửi dữ liệu ra cổng COM - Nhận dữ liệu từ cổng COM và hiển thị * Yêu cầu sinh viên thao... đặt ở trạng thái vô hiệu lự c Vi dụ trình hiển thị thời gian procedure TForm1.FormCreate(Sender: TObject); begin end; Kết quả caption:=TimeTostr(now()); 2.2.8 Đối tượng Comport cổng Com Đây là thành phần Delphi dùng để giao tiếp với thiết bị bên ngoài thông qua Comport được Delphi dặt lớp đối tượng có tên TCOMPORT Thực tập công nhân Trang 35 Xưởng điện tử Bài 6: Lập trình Tình huống thường được sử dụng... ButtonSend TBUTTON Caption Name Send ButtonClear TBUTTON Caption Name Clear ButtonExit TEDIT Caption TCOMPORT Name OnRxChar unit cong; interface uses Thực tập công nhân Trang 36 Exit Comport ComportRxChar Xưởng điện tử Bài 6: Lập trình Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, CPort; type TForm1 = class(TForm) Panel1: TPanel; Memo1: TMemo; ButtonOpen:... procedure Memo1Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Thực tập công nhân Trang 37 Xưởng điện tử Bài 6: Lập trình implementation {$R *.DFM} // Đóng cổng Com và exit chương trình procedure TForm1.ButtonExitClick(Sender: TObject); begin Comport.Close; Close; end; // Đóng mở Cổng Com procedure TForm1.ButtonOpenClick(Sender: TObject); begin... dụng và rất thú vị Timer do Delphi đặt trên bảng công cụ System Timer được xem là thành phần VCL không trực quan,, bởi vì bạn không nhìn thấy lúc chương trình thực thi Thay vào đó, Timer hoạt động Thực tập công nhân Trang 34 Xưởng điện tử Bài 6: Lập trình phía sau hậu trường Nó được dùng để đếm gian Nếu có khoảng thời gian nào đó trôi qua, mã lệnh đặt trong phương thức xử lý tình huống OnTimer sẽ được... TCOMPORT là OnAfterClose ( đóng cổng Com), OnAfterOpen ( mở cổng Com), OnRxChar (nhận dữ liệu từ cổng Com) Ví dụ: Viết một chương trình xuất nhập dữ liệu thông qua cổng Com Chọn File/New Application từ trình đơn đặt Form1 đối tượng Tedit, 1 đối tượng Tmemo, 5 đối tượng Tbutton thiết lập tình huống và phương thức xử lý từng đối tượng như sau: Đối tượ ng TFORM Thuộ t tính Giá trị Name Form1 TMEMO Caption Name... ButtonOpen.Caption:='Open'; end; end; // Đặt các tham số cho cổng Com procedure TForm1.ButtonSettingsClick(Sender: TObject); begin Comport.ShowSetupDialog; Comport.Open; end; Thực tập công nhân Trang 38 Xưởng điện tử Bài 6: Lập trình // Gửi dữ liệu ra cổng Com procedure TForm1.ButtonSendClick(Sender: TObject); var i: byte; s: string; begin if edit1.Text='' then exit; s:=chr(strtoint(edit1.Text)); // s:=edit1.text; for i:=1...Xưởng điện tử Bài 6: Lập trình Form1: TForm1; implementation {$R *.DFM} procedure TForm1.buttLoadClick(Sender: TObject); begin MemoEditor.Lines.LoadFromFile(editFileName.Text); isModified:=False; end; procedure TForm1.buttSaveClick(Sender: ... Xưởng điện tử Bài 6: Lập trình 2.1.1 Cửa sổ chương trình Delphi Của sổ chương trình Delphi xem trung tâm điều khiển môi trường soạn thảo biên dịch ứng dụng Cửa sổ chia làm phần nhỏ: Trình đơn, toolbar... 12, Bold Thực tập công nhân Trang 26 Xưởng điện tử Bài 6: Lập trình Nhấn Ctrl + F9 để biên dịch chương trình nhấn F9 để gọi chương trình thực thi Bạn thấy chương trình hiển thị chữ Hello World in... Khi chạy chương trình ta Thực tập công nhân Trang 39 Xưởng điện tử III Bài 6: Lập trình PHẦN THỰC TẬP CỤ THỂ • Viết chương trình xuất nhập liệu - Giới thiệu tổ thực tập - Thiết lập cổng com -