Mơ hình phân cấp VCL

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 41 - 42)

Mơ hình phân cấp và cây thừa kế của C++ Builder 6 có thể tìm thấy trong trang web

http://www.borland.com hoặc có thể liên lạc với địa chỉ email:

lexuanthach@gmail.com để nhận poster về cây thừa kế về VCL.

Sau đây, chúng tơi sẽ trình bày ngắn gọn về một số phân nhánh và cố gắng phân tích một số đối tượng trong cây thừa kế.

Lớp cao nhất trong cây thừa kế là TObject, lớp TObject là lớp trừu tượng. Lớp này cung cấp các khả năng để đáp nhằm đáp ứng việc khởi tạo và huỷ bỏ của các đối tượng, cung cấp sự nắm giữ thông điệp, và chứa các kiểu lớp, thông tin kiểu thực thi các thuộc tính xuất bản (Runtime Type Information- RTTI). RTTI cho phép chúng ta xác định kiểu của một đối tượng vào thởi điểm thực thi thậm chí khi mã lệnh sử dụng con trỏ hay tham chiếu đến đối tượng đó. Ví dụ, C++ Builder chuyển một con trỏ kiểu TObject như một tham số cho mỗi sự kiện của nó. RTTI cũng có thể thực hiện một phép tốn ép kiểu để sử dụng một đối tượng hoặc xác định kiểu của đối tượng. Chúng ta có thể để kiểm tra xem kiểu của một đối tượng bằng cách sử dụng phép toán typeid.

Một thuật ngữ của VCL là Persitent data (tạm dịch: dữ liệu liên tục) ám chỉ các được lưu trứ trong các giá trị thuộc tính. Một ví dụ đơn giản nhất là thuộc tính Caption của một nút nhấn hoặc một nhãn. Thuộc tính này có thể được điều chỉnh trong lúc thiết kế và lúc thực thi bằng mã lệnh hay giữa các phiên làm việc.

Các lớp không liên tục (Nonpersitent classes) ám chỉ các lớp đơn giản được thiết kế để thực hiện các hàm cụ thể nhưng nó khơng cho phép lưu trữ dữ liệu giữa các phiên làm việc.

Một trình bao bọc có thể được diễn giải như một nơi để thay thế cho sự phức tạp của các hàm Windows API. Nó cho phép tạo ra các đối tượng hoặc các thành phần để dễ sử dụng và sử dụng chéo cho nhiều dự án khác nhau.

Một lớp thường được sử dụng là lớp Exception. Nó cung cấp rất nhiều lớp ngoại lệ dựng sẵn để nắm giữ các lỗi ngoại lệ như lỗi chia cho 0, ..

Các nhánh chính của TObject bao gồm TPersitent, TComponent, TControl, TGraphicControl và TWinControl.

TPersistent thêm các phương thức cho TObject nhằm cho phép các đối tượng lưu lại trạng thái của nó trước khi bị huỷ đi và nạp lại trạng thái đó khi nó được tạo lại lần nữa. Lớp này quan trọng trong việc tạo ra những thành phần chứa đựng các thuộc tính có dữ liệu là lớp. Nhánh này cũng bao gồm nhiều lớp khác như: TCanvas, TClipboard, TGraphic, TGraphicsObject, và TStrings. TPersistent rẽ xuống TComponent, nó là nền tảng cho tất cả các thành phần VCL.

Thuộc tính dịng (Properity streaming) ám chỉ những thuộc tính này có giá trị được lưu giữ trong tập tin của biểu mẫu (form’s file). Khi dự án được mở ra lại thì giá trị sẽ được phục hồi như cũ (chẳng hạn giá trị tại thời điểm thiết kế).

Các đối tượng TComponent cung cấp nền tảng cho việc xây dựng các ứng dụng C+ + Builder, chúng được đặt trên bảng công cụ và trở thành cha của các thành phần khác.

Có hai loại thành phần: trực quan và khơng trực quan. Những thành phần không trực quan không yêu cầu giao diện trực quan, do đó nó phái sinh trực tiếp từ TComponent. Các thành phần trực quan yêu cầu phải được nhìn thấy và tương tác với người sử dụng trong lúc thực thi. TControl thêm các chương trình con để vẽ và các sự kiện cần thiết để định nghĩa một thành phần trực quan. Những đối tượng trực quan chia thành hai nhóm: được cửa sổ hố (TWinControl) và khơng được cửa sổ hố (TGraphicControl).

Các thành phần TGraphicControl có nhiệm vụ vẽ chính nó nhưng khơng bao giờ nhận được chỉ điểm (focus). Ví dụ như TImage, TLabel, TBevel và TShape.

Thành phần TWinControl cũng tương tự như TGraphicControl ngoại trừ nó có thể nhận được chỉ điểm, cho phép tương tác với người sử dụng. Những thành phần này được hiểu là được cửa sổ hố, nó có một thẻ quản cửa sổ và có thể chứa trong nó các đối tượng khác (cha của đối tượng khác).

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 41 - 42)

Tải bản đầy đủ (PDF)

(133 trang)