1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÀI 6 lập TRÌNH điều KHIỂN THIẾT bị

19 383 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 733 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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.. 2.1.4.Cửa sổ Object Inspector Với

Trang 1

BÀI 6 LẬP TRÌNH ĐIỀU KHIỂN THIẾT BỊ

I. MỤC ĐÍCH YÊU CẦU

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

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

Trang 2

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

ToolBar

Object

Inspector

Code

Editor

Form

Pallet

Trang 3

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

Trang 4

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

Trang 5

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

cho bạn một cửa sổ Form đặt trong Unit.pas cùng với tập tin dự án Project1.dpr

MainFrm.pas thay cho

Unit1.Pas và đặt tên cho tập tin dự án là HelloWin.dpr thay cho project.dpr

đặt vào cửa sổ Form

tượng Label như sau:

Caption Hello World

Bold

Trang 6

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

Trang 7

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à:

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

Trang 8

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

chứ a

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

Trang 9

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:

Caption OnCloseQuery

Form1 Delphi Notepad FormCloseQuery

Lines(…) Onchange

MemoEditor Xóa trắng MemoEditorChange

Tex

EditFileName C:\My

Documents\thu.tex

Caption

Label1 File Name

Caption OnClick

ButtLoad Load ButtLoadClick

Caption OnClick

ButtSave Save ButtSaveClick

Caption OnClick

ButtClear Clear ButtClearClick

Trang 10

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

Trang 11

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

Trang 12

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

TmainMenu

Trang 13

• Để 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

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

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

Trang 14

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

tính

Ý nghĩ a

hoạt động Giá trị Interval được tính bằng 1/1000 giây Interval

=1000 tương đương với khoảng thờ i gian 1 giây

thái vô hiệu lự c

Vi dụ trình hiển thị thời gian

procedure TForm1.FormCreate(Sender: TObject);

begin

caption:=TimeTostr(now());

Đâ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

end;

Kết quả

2.2.8 Đối tượng Comport

cổng Com

Trang 15

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:

Caption

Form1 Delphi Notepad

Lines(…)

Memo1 Xóa trắ ng

Caption

ButtonOpen Open

Caption

ButtonSetting Setting

Caption

ButtonSend Send

Caption

ButtonClear Clear

Caption

ButtonExit Exit

TCOMPORT Name

OnRxChar

Comport ComportRxChar unit cong;

interface

uses

Trang 16

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;

Trang 17

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;

Trang 18

// 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

Ngày đăng: 15/10/2015, 11:37

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w