كيف يمكنني الحصول على باسكال سيناريو الاعتراف ب "خلق" وظائف "الحرة" عند استيراد فئة مخصصة؟
-
20-09-2019 - |
سؤال
وأواجه مشكلة مع المثال من هذا <وأ href = "http://devcenter.remobjects.com/articles/؟id=٪7BB2CAB2FE-A831-452E-AF7A-6E2C6021D489٪7D" يختلط = "نوفولو noreferrer "> المقالة . توضح هذه المقالة كيفية استيراد الطبقات الخاصة بك بحيث يمكن استدعاؤها من سيناريو باسكال. أنا استيراد فئة مخصصة بلدي ولكن لا يمكن الحصول باسكال سيناريو الاعتراف وظائف 'إنشاء' و 'الحرة'.
وبلدي المساعد:
TMyPsPlugin = class
public
procedure PrintMessage(const AMessage: String);
end;
procedure TMyPsPlugin.PrintMessage(const AMessage: String);
begin
ShowMessage(AMessage);
end;
وبلدي التطبيق:
procedure TForm1.FormCreate(Sender: TObject);
var
Plugin: TPSPlugin;
begin
Plugin := TPSImport_MyPsPlugin.Create(Self);
TPSPluginItem(ps.Plugins.Add).Plugin := Plugin;
end;
procedure TForm1.bCompileClick(Sender: TObject);
begin
ps.Script.Text := mScript.Text;
if ps.Compile then
begin
if ps.Execute then
ShowMessage('Done.')
else
ShowMessage('Execution Error: ' + Ps.ExecErrorToString);
end
else
HandleError;
end;
وبلدي سيناريو:
program test;
var
Plugin: TMyPsPlugin;
begin
Plugin := TMyPsPlugin.Create;
Plugin.PrintMessage('Hello');
Plugin.Free;
end.
ورسائل خطأ:
[Error] (5:25): Unknown identifier 'Create'
[Error] (7:10): Unknown identifier 'FREE'
المحلول
ويبدو أن الطبقة البرنامج المساعد الخاص بك تنحدر مباشرة من TObject. إضافة uPSC_std
وuPSR_std
لمشروعك وتشغيل SIRegisterTObject
وRIRegisterTObject
(C و R يجري لمرة وترجمة والإصدارات وقت التشغيل) قبل تسجيل البرنامج المساعد الخاص بك. وهذا سوف إعداد منشئ افتراضي وأسلوب الحرة. إذا لم يفلح ذلك، تأكد من وحدة المستورد ينص تحديدا على أنك الهابطة من TObject.
نصائح أخرى
وأنت لم تتبع الاتجاهات بشكل صحيح من المقال الذي استشهد.
ويقول خصيصا لتشغيل المستورد وحدة، والذي يولد ملفين إضافية (من MyClass.pas يخلق MyClass.int وuPSI_MyClass.pas
). تحتاج إلى استخدام uPSI_MyClass.pas
(باستخدام وبطبيعة الحال، اسم الملف الصحيح للوحدة الخاصة بك)، واستخدام الأساليب المناسبة من تلك الوحدة.
وعلى افتراض أن المصدر لTMyPSPlugin في MyPSPlugin.pas، وحدة المستورد من شأنه أن يخلق MyPSPlugin.int وuPSI_MyPSPlugin.pas
. كنت بحاجة إلى إضافة uPSI_MyPSPlugin
للفقرة استخدامات الخاصة بك، ومن ثم استخدام TPSImport_MyPSPlugin.Create
ورمز إضافي لتسجيل البرنامج المساعد. (انظر الصورة الرابعة من صفحة الويب التي ترتبط - صورة لديها شريط التسمية التوضيحية القراءة "ide_editor.pas") وعند هذه النقطة، باسكال سيناريو هو علم صفك وسوف تعترف انها خلق وأساليب الحرة