2009-09-11 9 views
6

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?

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().

+0

Cảm ơn các bạn! Hoạt động tốt ngay bây giờ. – Vlad