PDA

View Full Version : [Hỏi]Gọi chương trình con (tên CT nằm trong 1 biến)



onelove27
10-12-2007, 17:04
--------- Mô tả công việc hiện tại
- Em viết 1 Unit tạo menu dạng đồ họa cho bài tập lớn Pascal.
- Một thủ tục trong Unit này là để tạo ra một Menu. Việc truyền tham số để thủ tục trong Unit tự điền tên nút ấn và gọi đoạn chương trình con, em có sử dụng 1 mảng 2 chiều (kiểu string) gồm n cột và 2 dòng. Mỗi cột ứng với 1 nút ấn. Trong đó dòng thứ 1 lưu tên nút ấn. Dòng thứ 2 lưu tên chương trình con mà nút ấn đó trỏ tới.
--------- Vấn đề nảy sinh từ công việc trên
- Khi viết đến phần gọi các chương trình con tương ứng với các nút ấn em chưa biết làm sao. Vì tên chương trình con chưa biết trước. Mà tên chương thình con là giá trị của phần tử trong mảng (em viết Unit mà).
--------- Câu hỏi
- Có cách nào gọi chương trình con mà tên chương trình nằm trong một biến string?
- Có thể gợi ý cách giải quyết giúp em được không? Em xin cảm ơn nhiều nhiều!

mr_invincible
10-12-2007, 19:35
Hinh như không có cách nào gọi các chương trình con mà tên chương trình nằm trong biến string cả
Theo tôi, cách giải quyết là bạn có thể dùng một lệnh case ... of để tùy theo biến string mà thực hiện chương trình con

onelove27
10-12-2007, 21:13
Có bác nào có cách giải quyết khác không ạ?

lee_huynh306
10-12-2007, 23:07
Kiểu bài này thì bạn dùng lệnh case như mr_invincible nói hay dùng danh sách liên kết động, dùng object. Mình nghĩ dùng object là hay nhất.
Còn mình biết thì không ngôn ngữ lập trình nào hỗ trợ cái kiểu gọi function hay procedure như bạn nói.
Ex:


Menu = Object
obj_id:word;
....
Constructor init;
menu_display(menu_name:string);
...
destructor close;
end;

onelove27
11-12-2007, 20:06
gửi bác lee_huynh306
Về cái Object này em chưa được biết. Có phải nó chỉ là ngôn ngữ mô phỏng Pascal thôi. Nếu được bác giúp em hiểu với nhé. Em định viết Unit để dùng cho nhiều lần sau nữa đỡ mất công vì vậy tên các chương trình con đều chưa biết.

lee_huynh306
11-12-2007, 20:27
Đây là lập trình hướng đối tượng trên Pascal, nó có trên Pascal từ version 5.5.
Nói thật là mình không đủ khả năng giải thích cho bạn hiểu :D Mình phải đọc qua lại 2-3 lần trong một cuốn sách TV mà vẫn chưa hiểu nó nói gì. Rốt cục phải thực hành từ từ mới thấy sự tiện dụng khi sử dụng Object- nhưng vẫn chưa hiểu hết :D

Quyển sách TV đó mình quên tựa rồi, cũng khá cũ- nhưng vẫn hữu dụng cho những ai còn đam mê Pascal. Mình vừa tìm được cái link này, bạn thử download về tham khảo. Nếu có gì thắc mắc bạn cứ gửi e-mail về unicornboy@gmail.com mình sẽ giải thích trong vòng hiểu biết của mình.
Link tham khảo: _http://community.borland.com/article/images/20803/TP_55_OOP_Guide.pdf

Về phần định nghĩa 1 object nó cũng giống như định nghĩa 1 record, chỉ khác là trong object có thể có thêm các hàm/ thủ tục, các thuộc tính (private,virtual, public...) của biến/hàm/thủ tục, và bắt buộc phải có constructor Init(variable1,...); và destructor close;

Bạn có thể dùng object trong 1 Unit bình thường.

onelove27
12-12-2007, 10:15
Anh có tài liệu tiếng Việt không ạ. Đọc tài liệu tiếng Việt anh còn thấy khó hiểu thì tiếng Anh còn khó hiểu hơn. Cảm ơn anh đã chia sẻ. Có gì em sẽ liên hệ qua mail.
Em cứ thử hỏi anh Google xem có gì không.