PDA

View Full Version : تبدیل ActiveX به کامپوننت دلفی



عقاب سیاه
چهارشنبه 23 آذر 1390, 19:40 عصر
درود
آیا امکان تبدیل ActiveX ها به کامپوننت های دلفی هست؟(بخاطر رفع مشکل نیاز به نصب اکتیو ایکس روی هر کامپیوتر و ..... می گم)
در ضمن من منظورم خاصم تبدیل اکتیوایکس قفل های Tiny است! :لبخند:

vcldeveloper
چهارشنبه 23 آذر 1390, 20:26 عصر
آیا امکان تبدیل ActiveX ها به کامپوننت های دلفی هست؟
بله


بخاطر رفع مشکل نیاز به نصب اکتیو ایکس روی هر کامپیوتر و ..... می گم
خیر

یعنی اینکه؛ شما می تونید برای یک ActiveX یک کامپوننت دلفی داشته باشید که اون رو Wrap کنه (مثل کنترل TWebBrowser دلفی)، اما این موجب عدم وابستگی به فایل اصلی ActiveX نمیشه.

عقاب سیاه
چهارشنبه 23 آذر 1390, 20:43 عصر
ممنون
یعنی هیچ راهی نداره که نیازی به نصب اون فایل ایکتیو ایکس روی هر کامپیوتری نباشد؟ نمیشه کد اکتیو ایکس را به صورت یه کامپوننت برای دلفی نوشت؟؟

----
شرکت منشورسیمین برای اکتیو ایکس این قفل های tiny یه مانیفست قرداده که نیاز نصب را برطرف میکند و خودکار قبل از اجرای نرم افزار این عمل (ثبت و نصب اکتیوایکس) با کمک اون فایل مانیفست انجام میگیره فقط یه ایراد داره اونم شکل برنامه یعنی شکل VCL ها و کل برنماه مثل ویندوز 98 میشه؟ این مشکل را نمی توان حل کرد؟؟؟
اینم لینک اون مانیفست: http://www.dedj.com/tdownload/manifest.exe

Mask
چهارشنبه 23 آذر 1390, 21:01 عصر
نیازی به اون فایل مانیفست نیست.
حین نصب اولیه برنامتون این ocx رو رجیستر کنید.

procedure RegisteredOcxDll(Path:string);
type
TDLLRegisterServer = function: HResult stdcall;
var
MangoOCX : THandle;
Registrar : TDllRegisterServer;
begin
MangoOCX:= LoadLibrary(pchar(Path));
Registrar:= GetProcAddress(MangoOCX, 'DllRegisterServer');
if Registrar <> 0 then
ShowMessage('Error');
FreeLibrary(MangoOCX);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:=ExtractFilePath(Application.ExeName)+' tiny.ocx';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
RegisteredOcxDll(Edit1.Text);
end;

عقاب سیاه
چهارشنبه 23 آذر 1390, 21:14 عصر
ممنون
ولی این جوری ممکنه مثلا اگه ویندوز عوض بشه برنامه دیگه کار نکنه و کاربر را مجبور به نصب مجدد برنامه کنه یا نمدونم اگه بهر نحوی اون اکتیو ایکس پاک بشه دیگه نرم افزار اجرا نشه!
البته فکر کنم این موضوع راحت قابل حل باشه0ایجاد یه برنامه واسطه برای فراخوانی نرم افزار اصلی که وظیفه کنترل نصب بودن اکتیو ایکس را داشته باشه و ... اما به نظرم اگه بشه از شر این اکتو ایکس را حت شد خیلی بهتر میشه!!

vcldeveloper
پنج شنبه 24 آذر 1390, 10:25 صبح
نمیشه کد اکتیو ایکس را به صورت یه کامپوننت برای دلفی نوشت؟؟
در صورتی میشه که شما سورس کد ActiveX مربوطه را داشته باشید، که من بعید میدونم شما همچین چیزی داشته باشید.

عقاب سیاه
پنج شنبه 24 آذر 1390, 11:11 صبح
آقای کشاورز یعنی امکان نداره این شرکت سورس اکتیو ایکس را در اختیار ما قرار بدن؟

Felony
پنج شنبه 24 آذر 1390, 11:29 صبح
آقای کشاورز یعنی امکان نداره این شرکت سورس اکتیو ایکس را در اختیار ما قرار بدن؟
کدوم شرکت ها ؟ اگر قرار بود سورس تحویل شما بدن خودشون بلد بودن کامپوننتش کنن !

شرکت مشنور سیمین ( Tiny ) رو هم کلا بیخیال شو ، اگر قرار باشه سورس Activex رو به شما بدن .. !

عقاب سیاه
پنج شنبه 24 آذر 1390, 11:32 صبح
ممنون
برای اون مانیفست که گفتم نمیشه کاری کرد که شکل برنامه را به هم نریزه؟

Mask
شنبه 26 آذر 1390, 13:06 عصر
اینکه کاری نداره عزیز جان
وقتی برنامه اصلیتو باز میکنی اول چک کن ببین اکتیوکس نصب هست یا نه . اگه نبود نصبش کن و شی tiny رو اکتیو کن.
در مورد اینکه میفرمایید اگه فایل tiny.ocx کنار برنامه نباشه شما در همه حالتها برنامتون اجرا نمیشه. چه با نصب اکتیویکس چه استفاده از منیفست.