THIẾT LẬP MÀN HÌNH ĐỒ HỌA VÀ ĐẶT MÀU NỀN MÀU CHỮ

Để xử lýmàn hình văn bản, bàn phím và âm thanh, Turbo Pascal viết sẵn một số thủ tục và hàm có chứa trong Unit Crt.

1. Tọa độ màn hình:

Màn hình văn bản thường gặp ở chế độ 80 cột, 25 dòng. Mỗi vị trí trên màn hình xác định bởi tọa độ cột và tọa độ dòng, chỉ chứa được một trong số 256 kí tự chuẩn của bảg mã ASCII.

Ví dụ :

_ Điểm (1, 1) nằm ở vị trí góc trên bên trái nhất của màn hình.

_ Điểm (20, 2) nằm ở vị trí cột thứ 20, hàng thứ 2 của màn hình.

2. Một số thủ tục xử lý màn hình:

GotoXY(X, Y : Byte); đưa vị trí con trỏ tới tọa độ (X, Y).

Ví dụ sau sẽ viết ra màn hình dòng chữ " Dong 20, Cot 20 " tại tọa độ (20, 20) :

Uses Crt ;

Begin

GotoXY(20, 20);

Write (' Dong 20, Cot 20 ') ;

Readln ;

End.

WhereX; WhereY; là 2 thủ tục cho ta biết cột, dòng hiện tại của con trỏ.

ClrScr; xóa toàn bộ màn hình và đặt con trỏ vào vị trí góc trên, bên trái(cột 1, hàng 1). Để xóa từ vị trí con trỏ đến hết dòng(không di chuyển con trỏ), ta dùng ClrEoLn.

DelLine; xoá một dòng tại vị trí của con trỏ và mọi dòng ở phía dưới sẽ được dịch lên một dòng.

InsLine; chèn thêm một dòng trống vào vị trí của con trỏ trên màn hình.

Window(X1, Y1, X2, Y2); thủ tục để vẽ một cửa sổ trên màn hình có tọa độ :

_ Góc trên bên trái là cột X1, hàng Y1.

_ Góc dưới bên phải là cột X2, hàng Y2.

Bây giờ, ta nhập chương trình sau đây vào máy để xem màu của Pascal nhảy nhót tung tăng trên màn hình.

Uses Crt ;

Var

X, Y : Byte ;

BEGIN

TextBackground(Black); (* Xóa màn hình *)

ClrScr ;

Repeat

X := Succ(Random(80)); (* Vẽ các cửa sổ ngẫu nhiên *)

Y := Succ(Random(25));

Window(X, Y, X + Random(10), Y + Random(8));

TextBackground(Random(16)); (* Tạo màu ngẫu nhiên *)

ClrScr ;

Until KeyPressed ;

END.

Trên màn hình màu, mỗi ô chữ có hai loại màu là màu chữ và màu nền. Để thể hiện màu chữ và màu nền, ta dùng 2 thủ tục sau :

TextColor ( Color : Byte ); thủ tục này đặt màu cho chữ, số và các kí hiệu khác.

TextBackground ( Color : Byte ); là thủ tục đặt màu nền.

Màu của 2 thủ tục này có thể viết nguyên từ tiếng Anh chỉ màu đó, hoặc viết bằng số nguyên thể hiện màu đó theo bảng dưới đây :

Màu

Giá trị

Black

Blue

Green

Cyan

Red

Magenta

Brown

LightGray

DarkGray

LightBlue

LightGreen

LightCyan

LightRed

LightMangenta

Yellow

White

Đen

Xanh

Xanh lá cây

Xanh cẩm thạch

Đỏ

Tía

Nâu

Xám nhẹ

Xám đậm

Xanh nhạt

Xanh lá cây nhạt

Xanh cẩm thạch nhạt

Hồng

Tía nhạt

Vàng

Trắng

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

* Để thể hiện một màu nào đó, ta có thể sử dụng một trong hai cách :

TextColor ( Yellow ) ;

hoặc TextColor ( 14 ) ;

Những màu văn bản được biểu diễn bằng các số giữa khoảng 0 tới 15, để nhận dạng một cách dễ dàng, bạn có thể dùng tên các màu này thay cho việc dùng số rất khó nhớ. Trong các chế độ văn bản màu, màu kí tự được chọn là 16 màu, còn màu nền là 8 màu.

* Mầu kí tự có thể cho nhấp nháy bằng cách cộng với hằng Blink, có giá trị là 128.

Sau đây là một ví dụ đầy đủ về cách sử dụng màu nền và màu chữ, bạn hãy chạy thử để biết được khả năng thể hiện màu sắc của Turbo Pascal.

Uses Crt ;

BEGIN

ClrScr ;

(* Kí tự màu xanh lá cây và nền đen *)

TextColor ( Green ) ;

TextBackground ( Black ) ;

WriteLn (' Hey there ! ') ;

(* Kí tự màu đỏ nhạt và sáng lấp láy *)

(* Nền xám nhạt *)

TextColor ( LightRed + Blink ) ;

TextBackground ( LightGray ) ;

WriteLn (' Hi there ! ') ;

(* Kí tự có màu vàng, nền xanh dương *)

TextColor ( 14 ) ; (* Yellow = 14 *)

TextBackground ( Blue ) ;

Writeln (' Ho there ! ') ;

NormVideo ; (* Chế độ sáng thông thường *)

WriteLn (' Back to normal... ') ;

Readln ;

END.

Trong ví dụ trên, bạn thấy có một thủ tục lạ là NormVideo. Đây là thủ tục xác định chế độ màn hình :

LowVideo; bắt đầu chế độ sáng thấp. Sau khi gọi thực hiện thủ tục này thì mọi dữ liệu xuất ra trên màn hình đều có màu với độ sáng thấp.

HighVideo; bắt đầu chế độ sáng cao, các dữ liệu xuất ra trên màn hình sẽ có màu sáng chói hơn.

NormVideo; bắt đầu chế độ sáng thông thường sau khi gọi thực hiện.

Võ Nhật Trường

Từ khóa » Cách Sử Dụng Lệnh Textcolor Trong Pascal