Hoạ trong FP

Một phần của tài liệu Free Pascal: Yes, Turbo Pascal: No! (Trang 25 - 27)

TP phiên bản cuối cùng là 7.0 ra đời năm 1992. Vào hồi đó, phần cứng đồ hoạ còn khá yếu nên TP 7.0 chỉ hỗ trợ chế độ đồ hoạ cao nhất là 640x480x4 bit (16 màu). Bây giờ là năm 2004, đồ hoạ máy tính đã rất mạnh, nhưng nếu dùng TP thì ta cũng chỉ dùng được chế độ cao nhất đó thôi. Nếu có driver SVGA (SVGA256.BGI) thì ta có thể sử dụng được các chế độ 256 màu. Nhưng nếu dùng FP, chúng ta có thể có chế độ đồ hoạ cao hơn nhiều. Theo thử nghiệm thì tôi đã dùng được chế độ 800x600x16bit (64K màu) trong FP. Nghĩa là chẳng không thua kém nhiều các môi trường lập trình trên Windows.

Unit Graph của FP tương thích hoàn toàn TP. Như vậy chúng ta vẫn có thể dùng các chương trình đồ hoạ được viết trên TP để dịch lại và chạy trong FP mà không cần sửa đổi gì. Hơn nữa, chúng ta có thể sử dụng những mode đồ hoạ với độ phân giải và số màu nhiều hơn với những thao tác vẽ đơn giản và quen thuộc của TP.

Bảng sau là các driver và mode đồ hoạ mới trong FP. Chú ý là do FP là đa môi trường (multi platform), tức là sinh mã cho nhiều hệ điều hành và hệ máy khác nhau, do đó có thể những chế độ đồ hoạ không được một số hệ nào đó hỗ trợ.

D1bit = 11; D2bit = 12; D4bit = 13;

D6bit = 14; { 64 colors Half-brite mode - Amiga } D8bit = 15;

D12bit = 16; { 4096 color modes HAM mode - Amiga } D15bit = 17;

D16bit = 18;

D24bit = 19; {chưa được hỗ trợ} D32bit = 20; {chưa được hỗ trợ} D64bit = 21; {chưa được hỗ trợ} detectMode = 30000;

m320x200 = 30001;

m320x256 = 30002; { amiga resolution (PAL) } m320x400 = 30003; { amiga/atari resolution } m512x384 = 30004; { mac resolution } m640x200 = 30005; { vga resolution }

m640x256 = 30006; { amiga resolution (PAL) } m640x350 = 30007; { vga resolution } m640x400 = 30008; m640x480 = 30009; m800x600 = 30010; m832x624 = 30011; { mac resolution } m1024x768 = 30012; m1280x1024 = 30013; m1600x1200 = 30014; m2048x1536 = 30015;

Còn sau đây là một chương trình demo về chế độ đồ hoạ cao của FP (800x600x16 bit). Nếu máy của bạn hỗ trợ chế độ này, bạn sẽ thấy một dải màu rất đẹp.

uses graph; var gd, gm, i, error: integer; BEGIN gd := D16bit; gm := m800x600; initgraph(gd,gm,''); error := graphResult;

if (error <> grOk) then begin

writeln('800x600x16bit is not supported!'); halt(1) end; for i := 1 to 600 do begin setColor(random(65536)); line(0,i,799,i); end;

readln; closegraph; END.

Một phần của tài liệu Free Pascal: Yes, Turbo Pascal: No! (Trang 25 - 27)