Saeed_m_Farid
دوشنبه 30 دی 1387, 12:29 عصر
سلام
من تو سی بیلدر یه { ocx { ActiveX نوشتم {نحوه دانلود ActiveX سفارشي در وب سايت؟ (http://barnamenevis.org/forum/showthread.php?t=143474) } که البته مشکلات ذکر شده تو پست اخیر کاملا حل شدن و الان تو برنامه های دسکتاپ داره کار میکنه ولی وقتی تو یه وب سایت دارم ازش استفاده میکنم یه مشکلی دارم : نمیتونم به متدها و اعضاء این اکتیوایکس دسترسی پیدا کنم و یا پارامتری رو به اون پاس بدم! و در واقع اصلا آبجکت مورد نظر یه هندل درست حسابی و قابل دسترسی تو ASP.Net به من نمیده که هرجوری هم تست کردم (با سی شارپ، جاوا اسکریپت و ...) و مدتیه که دارم با گشتن تو سایتهای مختلف درواقع دور خودم میچرخم!
تو اینجا (http://www.experts-exchange.com/Programming/Languages/CPP/Q_20176203.html) (واسه BCB) و اینجا (http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_20578481.html) (واسه دلفی) یه توضیحی داده شده بود که من تو اکتیوایکسم اینکارها رو انجام دادم ولی هیچ اتفاقی نیافتاد، البته یه چیزای عجیب غریب داره که نمیدونم لازمه اونها رو هم به سی بیلدر کانورت کنم یا نه؟ مثلا کد زیر تو دلفی که داره متدهای یه اینترفیس که implement نشده رو انتساب میده، نمیدونم دلفی چطور اینو کامپایل میکنه؟
Add interface to IPersistPropertyBag, e.g.
TMyActiveForm = class(TActiveForm, IMyActiveForm, IPersistPropertyBag) <-- add this!
then implement all these as protected
function IPersistPropertyBag.Load = PersistPropertyBagLoad;
function IPersistPropertyBag.Save = PersistPropertyBagSave;
function IPersistPropertyBag.InitNew = PersistPropertyBagInitNew;
function IPersistPropertyBag.GetClassID = PersistPropertyBagGetClassID;
function PersistPropertyBagLoad(const pPropBag: IPropertyBag;
const pErrorLog: IErrorLog): HResult; stdcall;
function PersistPropertyBagSave(const pPropBag: IPropertyBag; fClearDirty: BOOL;
fSaveAllProperties: BOOL): HResult; stdcall;
function PersistPropertyBagGetClassID(out classID: TCLSID): HResult; stdcall;
function PersistPropertyBagInitNew: HResult; stdcall;
... and the code
کاری که کردم تو سمت ASP.Net تو #C این بوده که یه پارامتر به آبجکت اضافه کردم تا بتونم سمت اکتیوایکس اون پارامتر رو استفاده کنم :
<object id="MyObject" classid="clsid:DE6AF47A-xxx-xxxx-xxxx-xxxxxxxxxxxx"
codebase="http://MyLocation/TMyObjectPrj.ocx#VERSION=1.0.0.9"
standby="Loading ...">
<param name="mylink" value="http://MyLocation/01/01/2009/MyFile.tmp" id=1>
:متفکر: خلاصه اش : من فقط نیاز دارم که یه Edit از اکتیوایکس (آبجکت اضافه شده به فرم وب) رو مقداردهی کنم ، البته واسش یه property هم نوشتم و بدون مشکل میشه این عضو (و سایر توابع و اعضاء!!!) رو از برنامه های دسکتاپ مقداردهی کرد؛ میخوام پارامتری رو به این آبجکت پاس بدم (حالا هر سمتی که شد) : ولی تا اونجایی که میدونم نمیشه سمت ASP.Net به اکتیوایکس دستیابی داشت.
ممنون از دوستان عزیزی که تجربه ای در این زمینه دارن و کمک می کنن...
من تو سی بیلدر یه { ocx { ActiveX نوشتم {نحوه دانلود ActiveX سفارشي در وب سايت؟ (http://barnamenevis.org/forum/showthread.php?t=143474) } که البته مشکلات ذکر شده تو پست اخیر کاملا حل شدن و الان تو برنامه های دسکتاپ داره کار میکنه ولی وقتی تو یه وب سایت دارم ازش استفاده میکنم یه مشکلی دارم : نمیتونم به متدها و اعضاء این اکتیوایکس دسترسی پیدا کنم و یا پارامتری رو به اون پاس بدم! و در واقع اصلا آبجکت مورد نظر یه هندل درست حسابی و قابل دسترسی تو ASP.Net به من نمیده که هرجوری هم تست کردم (با سی شارپ، جاوا اسکریپت و ...) و مدتیه که دارم با گشتن تو سایتهای مختلف درواقع دور خودم میچرخم!
تو اینجا (http://www.experts-exchange.com/Programming/Languages/CPP/Q_20176203.html) (واسه BCB) و اینجا (http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_20578481.html) (واسه دلفی) یه توضیحی داده شده بود که من تو اکتیوایکسم اینکارها رو انجام دادم ولی هیچ اتفاقی نیافتاد، البته یه چیزای عجیب غریب داره که نمیدونم لازمه اونها رو هم به سی بیلدر کانورت کنم یا نه؟ مثلا کد زیر تو دلفی که داره متدهای یه اینترفیس که implement نشده رو انتساب میده، نمیدونم دلفی چطور اینو کامپایل میکنه؟
Add interface to IPersistPropertyBag, e.g.
TMyActiveForm = class(TActiveForm, IMyActiveForm, IPersistPropertyBag) <-- add this!
then implement all these as protected
function IPersistPropertyBag.Load = PersistPropertyBagLoad;
function IPersistPropertyBag.Save = PersistPropertyBagSave;
function IPersistPropertyBag.InitNew = PersistPropertyBagInitNew;
function IPersistPropertyBag.GetClassID = PersistPropertyBagGetClassID;
function PersistPropertyBagLoad(const pPropBag: IPropertyBag;
const pErrorLog: IErrorLog): HResult; stdcall;
function PersistPropertyBagSave(const pPropBag: IPropertyBag; fClearDirty: BOOL;
fSaveAllProperties: BOOL): HResult; stdcall;
function PersistPropertyBagGetClassID(out classID: TCLSID): HResult; stdcall;
function PersistPropertyBagInitNew: HResult; stdcall;
... and the code
کاری که کردم تو سمت ASP.Net تو #C این بوده که یه پارامتر به آبجکت اضافه کردم تا بتونم سمت اکتیوایکس اون پارامتر رو استفاده کنم :
<object id="MyObject" classid="clsid:DE6AF47A-xxx-xxxx-xxxx-xxxxxxxxxxxx"
codebase="http://MyLocation/TMyObjectPrj.ocx#VERSION=1.0.0.9"
standby="Loading ...">
<param name="mylink" value="http://MyLocation/01/01/2009/MyFile.tmp" id=1>
:متفکر: خلاصه اش : من فقط نیاز دارم که یه Edit از اکتیوایکس (آبجکت اضافه شده به فرم وب) رو مقداردهی کنم ، البته واسش یه property هم نوشتم و بدون مشکل میشه این عضو (و سایر توابع و اعضاء!!!) رو از برنامه های دسکتاپ مقداردهی کرد؛ میخوام پارامتری رو به این آبجکت پاس بدم (حالا هر سمتی که شد) : ولی تا اونجایی که میدونم نمیشه سمت ASP.Net به اکتیوایکس دستیابی داشت.
ممنون از دوستان عزیزی که تجربه ای در این زمینه دارن و کمک می کنن...