Vâng loại câu hỏi n00b nhưng tôi vẫn không thể tìm ra. Tôi có đơn vị main
với quy trình Discard()
trong đó. Bây giờ tôi có một đơn vị khác engine
và tôi muốn chạy từ quy trình đó Discard()
của đơn vị main
. Tôi có chính trong phần uses
của engine.pas
. Tôi đã cố gắng gọi thủ tục với main.Discard()
nhưng không tốt. Tôi đang làm gì sai?Làm cách nào để chạy thủ tục từ một đơn vị khác?
6
A
Trả lời
5
Bạn cần phải đặt chữ ký của thủ tục trong giao diện của bạn, như vậy:
unit main;
interface
procedure Discard();
implementation
procedure Discard();
begin
//do whatever
end;
đơn vị khác chỉ có thể "nhìn thấy" bất cứ điều gì được liệt kê trong phần giao diện.
5
Trong đơn vị "Main" bạn khai báo Huỷ trong phần "giao diện":
unit Main;
interface
uses ...
procedure Discard (...); // only the declaration, not the entire procedure
implementation
... // code
Bây giờ trong đơn vị "Engine" bạn thêm "Main" để "sử dụng" phần.
uses Main, ...
Thats it, bạn có thể gọi Discard(...)
ngay bây giờ. Nếu có nhiều hơn một số Discard()
, bạn có thể gọi một cách rõ ràng sốDiscard()
này bằng cách sử dụng Main.Discard()
.
Cảm ơn các bạn! Hoạt động tốt ngay bây giờ. – Vlad