كيفية تشغيل الإجراء من وحدة أخرى؟
-
05-07-2019 - |
سؤال
وكذلك هذا النوع من الأسئلة n00b ولكن ما زلت لا أستطيع معرفة ذلك. لدي وحدة main
مع Discard()
الإجراء في ذلك. الآن لدي حدة engine
آخر، وأريد أن أشغل من ذلك الإجراء Discard()
وحدة main
. لدي الرئيسي في قسم uses
من engine.pas
. حاولت الاتصال الداخلي مع main.Discard()
ولكن ليس جيدا. ما أفعل الخطأ؟
المحلول
وتحتاج إلى وضع توقيع الإجراء في واجهة الخاص بك، كما يلي:
unit main;
interface
procedure Discard();
implementation
procedure Discard();
begin
//do whatever
end;
ويمكن وحدات أخرى فقط "رؤية" كل ما هو مدرج في قسم واجهة.
نصائح أخرى
في وحدة "الرئيسية" قمت بتعريف تجاهل في قسم "واجهة" ل:
unit Main;
interface
uses ...
procedure Discard (...); // only the declaration, not the entire procedure
implementation
... // code
والآن في وحدة "محرك" قمت بإضافة "الرئيسي" إلى "يستخدم" المقطع.
uses Main, ...
وهذا كل شيء، يمكنك الاتصال Discard(...)
الآن. إذا كان هناك Discard()
أكثر من واحد يمكنك الاتصال explicitely <ط> هذه Discard()
باستخدام Main.Discard()
.
لا تنتمي إلى StackOverflow