لماذا لا يمكنني تسجيل هذه الطريقة مع مترجم Pascalscript؟

StackOverflow https://stackoverflow.com/questions/2225287

سؤال

سؤالي أدناه.

هنا هو بلدي الإعداد:

interface 

  uses windows, {...,} uPSComponent_Default, uPSComponent, uPSRuntime, uPSComponent_Controls;

  TForm1 = class(TForm)
    //...
    PSScript1: TPSScript;
    PSImport_Classes1: TPSImport_Classes;
    PSImport_Controls1: TPSImport_Controls;
    procedure PSScript1Compile(Sender: TPSScript);
    //...
  Private
    procedure NewItem(const Caption:string; const SubItems:TStringList);
    //...
  end;

implementation

  {...}

  procedure TForm1.PSScript1Compile(Sender: TPSScript);
  begin
    //...
    Sender.AddMethod(Self, @TForm1.NewItem,  'procedure NewItem(const Caption:string; const SubItems:TStringList);');
    //...
  end;

لماذا أحصل على الخطأ التالي عند محاولة ترجمة أي برنامج نصي.

[Error] (1:1): Unable to register function procedure NewItem(const Caption:string; const SubItems:TStringList);

أعلم أن الأمر يتعلق بمحاولتي لاستيراد طريقة NewItem إلى مترجم PS لكنني لا أعرف لماذا لن يقبل ذلك Tstringlist. أعرف أنها قائمة Tstringlist لأنه إذا قمت بإخراج Param Tstringlist واستخدم الطريقة مع التوقيع التالي ثم يعمل كل شيء.

    procedure NewItem(const Caption:string);

لا يمكنني العثور على أي مراجع قائلة أنه لا يمكنني تمرير الكائنات ذهابا وإيابا بين برنامج التحويل البرمجي / البرنامج النصي ورمز دلفي، لكنني بدأت أعتقد أنه ربما هناك حدود في القيام بهذا النوع من الأشياء بالضبط.

هل سيكون أكثر منطقية لمحاولة اجتياز مجموعة من الأوتار بدلا من لغة Tstring؟

هل كانت مفيدة؟

المحلول

إذا كنت أعتقد، سأقول أنه ربما لأنك لم تسجل فصل Tstringlist حتى الآن. يجب تسجيل الفصول الدراسية مع PascAlscript قبل أن تتمكن من استخدامها.

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