Tạo và quản lý các form

Một phần của tài liệu Giáo trình Lập trình nâng cao (Nghề Lập trình máy tính): Phần 1 - Tổng cục dạy nghề (Trang 92 - 97)

Một dự án trong giao diện người dùng Windows phải có ít nhất một biểu mẫu (form), điều này nói lên rằng một dự án có thể tồn tại nhiều biểu mẫu khác nhau. Trong nội dung phần này chúng ta sẽ nghiên cứu phương pháp quản lý các form.

Các biểu mẫu được C++ Builder định nghĩa trong lớp TForm, trong thư viện Forms.hpp của VCL và CLX (giống VCL nhưng được dùng để phát triển chương trình cho đa hệ điều hành). Lớp TForm là một phần trong cây thừa kế các đối tượng thuộc về Windows, nó bắt đầu với lớp TWinControl. Trong thực tế, TForm được thừa kế từ lớp TCustomForm. TForm có rất nhiều phương thức, thuộc tính và sự kiện. Thơng thường, những người phát triển C++ Builder tạo các form vào thời điểm thiết kế. Chương trình sau sẽ thể hiện phương pháp để tạo một Form tại thời điểm thực

thi chương trình. Chương trình này có khả năng hiển thị một thơng điệp dài nhờ vào một đối tượng kiểu lớp TMemo.

//Đoạn lệnh này do C++ Builder sinh ra

//--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner) {

}

//đoạn này chính là hàm tạo form tự động void ShowStringForm(AnsiString str) {

TForm *form; TMemo *t;

form = new TForm(Form1); form->Caption = "DynaForm"; form->Position = poScreenCenter; t = new TMemo(form); t->Parent = form; t->Align = alClient; t->ScrollBars = ssVertical; t->ReadOnly = True; t->Color = form->Color; t->BorderStyle = bsNone; t->WordWrap = True; t-> Text = str; form->Show(); }

Bây giờ, chúng ta thêm vào form một nút nhấn và viết mã lệnh cho sự kiện OnClick để đạt được kết quả như sau:

void __fastcall TForm1::Button1Click(TObject *Sender) {

AnsiString str;

str = ""; Randomize(); while( str.Length() < 2000 )

str = str + AnsiString( char(32 + random(94))); ShowStringForm (str);

Khi đó, chương trình chạy và chúng ta nhấn vào nút Button1 sẽ đạt được kết quả là một dãy ký tự có chiều dài 2000 ký tự sẽ hiển thị lên màn hình như sau:

Hình 58-Form được tạo bằng mã lệnh

Như chúng ta đã đề cập ở trên, khi C++ Builder khởi động hoặc khi tạo một dự án mới sẽ tạo cho chúng ta sẽ nhận được một form trắng. Điều này được minh hoạ trong cửa sổ Project Manager như sau:

Hình 59- Project Manager khi có một Form

Trong dự án Project1 trong hình, Form1 được lưu trữ trong Unit1.cpp. Tuy nhiên, khi lưu trữ trên đĩa, Form này được lưu trữ bởi 3 tập tin: Unit1.cpp, Unit1.hpp, Unit1.dfm. Để thêm một Form mới vào dự án, chúng ta chọn File/New/Form. Khi đó chúng ta sẽ nhận được cửa sổ Project Manager như sau:

Hình 60- Project Manager với hai Form

Trong hình trên, chúng ta thấy Form1 được tạo ra đầu tiên, tạo thêm một Form nữa, chúng ta nhận được Form2, tương tự các Form sẽ được thêm và mang tên theo thứ tự được liệt kê.

Hiển nhiên, khi các Form được lưu trữ trong các tập tin mặc định như vậy sẽ rất khó quản lý. Chúng ta có thể lưu trữ với tên tập tin khác. Chúng ta chọn File/Save All hay nút nhấn Save All trên thanh công cụ. Chúng ta sẽ nhận được các cửa sổ lưu trữ theo thứ tự ngược, Form tạo sau sẽ được yêu cầu lưu trước.

Cửa sổ đầu tiên sẽ là cửa sổ yêu cầu nhập tên để lưu trữ Form2, chúng ta chú ý kiểu tập tin được đánh dấu ơ màu trong hình:

Chúng tơi đề xuất lưu trữ tập tin của Form bằng tập tin bắt đầu bởi mdl, do đó, chúng tơi đặt tên của tập tin để lưu trữ form2 bằng tập tin mdlform2.

Sau khi nhấn nút Save, chúng ta sẽ được hỏi lưu trữ cho Form1. Thực hiện tương tự như trên với tên tập tin mdlform1.

Cuối cùng là cửa sổ hỏi tên tập tin lưu cho dự án:

Hình 62-Cửa sổ lưu trữ Project

Chúng tơi đề xuất lưu trữ tập tin dự án bắt đầu bởi từ Pro, do đó, chúng tơi đặt dự án này với tên, ProHaiForm.

Để loại bỏ một Form khỏi dự án, chúng ta thực hiện nhấn chuột phải lên tên Unit chứa Form, chọn Remove From Project, chúng ta sẽ nhận một cửa sổ hỏi có thực sự muốn loại bỏ Unit hay khơng? Chúng ta chọn Yes để loại bỏ Unit đồng nghĩa loại bỏ cả Form.

Hình 63-Loại bỏ một Form khỏi dự án

Trong phần tiếp theo chúng ta sẽ nghiên cứu phương pháp làm việc với các thành phần.

Một phần của tài liệu Giáo trình Lập trình nâng cao (Nghề Lập trình máy tính): Phần 1 - Tổng cục dạy nghề (Trang 92 - 97)