سؤال

وكذلك هذا النوع من الأسئلة 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().

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top