के अंदर सार्वजनिक विधियों और गुणों तक पहुंच मेरे पास एक ऐसा एप्लिकेशन है जो एक साधारण रूप के रूप में एक बीपीएल लोड करता है।डेल्फी बीपीएल
यह फ़ॉर्म मुख्य एप्लिकेशन का एक वैकल्पिक विकल्प है।
बीपीएल सही ढंग से लोड होता है, फॉर्म सही ढंग से दिखाया गया है, लेकिन मुझे नहीं पता कि बीपीएल के अंदर फॉर्म के सार्वजनिक तरीकों और गुणों का उपयोग कैसे किया जाए।
कोई भी एक साधारण उदाहरण प्रदान कर सकता है?
मेरी कोड:
// Load the BPL on aplication Load
LoadPackage('About.bpl');
// CAll for TForm1 inside the About.BPL
var
AClass: TClass;
AForm: TForm;
begin
AClass := GetClass('TForm1');
if AClass <> nil then
begin
Application.CreateForm(TComponentClass(AClass), AForm);
AForm.Show;
end;
// The unit TForm1 inside the BPL package
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
PublicMthd;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Procedure TForm1.PublicMthd;
Begin
ShowMessage('Inside call');
End;
initialization
RegisterClass(TForm1);
finalization
UnRegisterClass(TForm1);
end.
कैसे मैं Tform1 में "PublicMthd" पहुँच सकता है?
हमें दिखाएं कि आपका कोड कैसा दिखता है। बीपीएल फाइलों को लोड करने के कई तरीके हैं और उत्तर इस बात पर निर्भर करेगा कि आप इसे कैसे कर रहे हैं। –
यह SO प्रश्न भी देखें: [निष्पादन-ए-विधि-से-एक-फॉर्म-निर्मित-द्वारा-श्रेणी-संदर्भ-डेल्फी] (http://stackoverflow.com/questions/2991934/execute-a-method-from -ए-फॉर्म-निर्मित-द्वारा-श्रेणी-संदर्भ-डेल्फी) –
क्या आपने यह बीपीएल लिखा था? आप GetMainForm नामक फ़ंक्शन को क्यों निर्यात नहीं करते हैं, और फिर आप 'फ़ंक्शन GetMainForm: TForm'' कॉल करते हैं और फिर आप इसे एक्सेस कर सकते हैं?क्या कोई कारण है कि आप एक सामान्य ज्ञान दृष्टिकोण का उपयोग नहीं कर सकते हैं? कक्षाओं को जानने के बाद आप क्या करना चाहते हैं और उन्हें गिन सकते हैं, और शायद उनके उदाहरण भी बना सकते हैं? क्या आपके पास एक मुख्य कारण है कि आप अपने मुख्य अनुप्रयोग से अंतर्निहित वर्ग प्रकारों पर सीधे जाने के बजाय, आपके समस्या डोमेन को फिट करने वाले IPluginInterface निर्दिष्ट नहीं कर रहे हैं? –