PDA

View Full Version : استفاده از كامپوننتهاي دلفي در زبان ديگر



vbhamed
پنج شنبه 03 دی 1388, 21:50 عصر
سلام به همه اساتيد دلفي كار

چطوري ميشه يك كامپوننت كه مربوط به دلفي هست رو مثلا در ويژوال بيسيك استفاده كرد

كامپوننتي مثل AlphaSkin كه يك نسخه Free هم خود شركتش داده رو اينجا داريم

http://www.alphaskins.com/dwnld.php

حالا چطوري از اين كامپوننت در VB استفاده كنيم

اگر بتونيد يك برنامه Exe بنويسيد كه مسير فايل اسكين و هندل يك شيء رو بگيره و اسكين رو به اون شيء اعمال كنه هم كارم راه ميفته، چون معمولا كامپوننتهاي اسكين داشتن هندل براشون كافيه

Nima NT
پنج شنبه 03 دی 1388, 23:04 عصر
اگر كامپوننت مورد نظر انحصارا" با نام VCL معرفي شده باشه متاسفانه نميشه استفاده كرد ، فقط در مواردي ميتونيد مشتركا" از اونها استفاده كنيد كه ActiveX باشن ، در اين صورت هم ديگه اين كامپوننت فقط به دلفي مربوط نميشه.
در كامپوننت هاي خود دلفي از نوع VCL در بين نسخه هاي دلفي اتحاد وجود نداره چه برسه به زبانهاي ديگه ( شما نميتوني از كامپوننتي كه در دلفي 7 استفاده ميكني از دلفي 2007 استفاده كني و برعكس‌).

vbhamed
پنج شنبه 03 دی 1388, 23:47 عصر
سلام

ممكنه زحمت بكشيد يه سري به سايت بالا بزنيد ببينيد اين كامپوننت از چه نوعي هست و آيا راهي وجود داره يا نه ؟

بعد مگر تو دلفي نميشه هندل يك شيء رو بدست آورد، حالا اگر كامپوننت با هندل كار كنه ديگه بايد كافي باشه

vcldeveloper
جمعه 04 دی 1388, 11:07 صبح
( شما نميتوني از كامپوننتي كه در دلفي 7 استفاده ميكني از دلفي 2007 استفاده كني و برعكس‌).
تا زمانی که سورس کامپوننت موجود باشه، و بشه کامپوننت را کامپایل کرد، مشکل خاصی وجود نداره.


چطوري ميشه يك كامپوننت كه مربوط به دلفي هست رو مثلا در ويژوال بيسيك استفاده كرد
میشه یک کنترل دلفی که از TWinControl مشتق شده را در یک کنترل ActiveX محصور (Wrap) کرد. در این صورت، ActiveX حکم یک پنل را خواهد داشت که کنترل مربوطه در داخل آن وجود دارد.

از کامپوننت های AlphaSkin هم شما می تونید آنهایی که از TWinControl مشتق شدند را به ActiveX تبدیل کنید، البته خیلی انتظار بالایی از این کار نداشته باشید، این روش در مواقعی که واقعا به یک کنترل خاص در یک زبان دیگه نیاز دارید، کاربرد داره، وگرنه برای کارهایی مثل زیباسازی فرم های برنامه اصلا ارزش استفاده نداره، و بهتر هست از همون ActiveXهایی که مخصوص VB طراحی شدند استفاده کنید.

vbhamed
جمعه 04 دی 1388, 13:27 عصر
تا زمانی که سورس کامپوننت موجود باشه، و بشه کامپوننت را کامپایل کرد، مشکل خاصی وجود نداره.


میشه یک کنترل دلفی که از TWinControl مشتق شده را در یک کنترل ActiveX محصور (Wrap) کرد. در این صورت، ActiveX حکم یک پنل را خواهد داشت که کنترل مربوطه در داخل آن وجود دارد.

از کامپوننت های AlphaSkin هم شما می تونید آنهایی که از TWinControl مشتق شدند را به ActiveX تبدیل کنید، البته خیلی انتظار بالایی از این کار نداشته باشید، این روش در مواقعی که واقعا به یک کنترل خاص در یک زبان دیگه نیاز دارید، کاربرد داره، وگرنه برای کارهایی مثل زیباسازی فرم های برنامه اصلا ارزش استفاده نداره، و بهتر هست از همون ActiveXهایی که مخصوص VB طراحی شدند استفاده کنید.

سلام

راستش من اصلا دلفي كار نكردم
اگر بتونيد اين كار رو براي من انجام بدين خيلي ممنون ميشم
من با كامپوننتهاي اسكين زيادي كار كردم
اما يا امكاناتشون خوبه و سرعت برنامه رو پايين مي آرن
يا قابليتهاي دلخواه من رو ندارن، مثل سايه، انيميشن، شفافيت و غيره...

vbhamed
دوشنبه 07 دی 1388, 14:19 عصر
سلام

جناب كشاورز و بقيه دوستان

من همچنان منتظرم