PDA

View Full Version : transparent بودن کنترلها



SReza1
یک شنبه 18 مرداد 1383, 23:09 عصر
خوب حتما تا حالا اشیایی که به صورت transparet در میآیند رو دیدید.
خوب به نظز من بد نیست رو این قضیه هم کار بشه! من روی این جور کامپوننتها زیاد کار کردم. کسی هست که مثلا بتونه treeview رو transparen کنه؟؟؟ یا مثلا outline رو؟ :)

aminadibi
دوشنبه 19 مرداد 1383, 17:10 عصر
این کامپوننتها رو برای ما هم بفرست یا آدرس بذار داونلود کنیم.

jirjirakk
سه شنبه 20 مرداد 1383, 23:17 عصر
خوب حتما تا حالا اشیایی که به صورت transparet در میآیند رو دیدید.
خوب به نظز من بد نیست رو این قضیه هم کار بشه! من روی این جور کامپوننتها زیاد کار کردم. کسی هست که مثلا بتونه treeview رو transparen کنه؟؟؟ یا مثلا outline رو؟

سید جان از این جور چیزها دیدم اما کار کردن راستیتش نه، اگه سر نحی سر طنابی بدی بد نیست :)

SReza1
سه شنبه 20 مرداد 1383, 23:38 عصر
خوب من این عنوان رو مطرح کردم که یه کمی دوستان فکر کنند و بحث کنیم دیگه!! :shock:

ebnsina
یک شنبه 25 مرداد 1383, 23:57 عصر
فکر کنم Canvas این اشیاء رو باید به دست گرفت و رنگ زمینه را طوری دستکاری کرد که یا اصلاْ Draw نشن و یا با رنگ ترکیبی Draw بشن!

با این همه ما هم منتظر سر طنابیم :lol:

SReza1
چهارشنبه 28 مرداد 1383, 20:17 عصر
تا حدی سز نخ رو گفتی!! میتونی با TCanvas خیلی کارا بکنی!! ولی اگه یه object چیزی به نام TCanvas نداشت چی؟ مثله TEdit? :D

SalarSoft
جمعه 30 مرداد 1383, 16:34 عصر
من هم دکمه که Transparent است رو نوشتم.
البته این کامپوننت وجود داشت ولی من با کمی تغییرات و اظافه کردن کدهای ویژه Transparent اون رو به این شکل درآوردم (لذت ببرید):
http://www.geocities.com/salarsoftxp/downloads/free/tans_btn.zip

جناب Sreza1 شفاف کردن TreeView کار بسیار مشکلی است. ولی امکان پذیر است! اصولا این کار اصلا به درد نمی خورد.

اما برای این کار می توان بعد از Draw شدن در Paint از آن تصویر بگیریم و سپس اعمال مربوط به شفاف سازی را توسط تابع مخصوص بر روی TreeView انجام دهیم.

در ضمن تابع مخصوص شفاف سازی با استفاده از HRGN در یونیت بالا موجود است! :wink:

SReza1
جمعه 30 مرداد 1383, 23:28 عصر
من هم دکمه که Transparent است رو نوشتم.
البته این کامپوننت وجود داشت ولی من با کمی تغییرات و اظافه کردن کدهای ویژه Transparent اون رو به این شکل درآوردم (لذت ببرید):
http://www.geocities.com/salarsoftxp/downloads/free/tans_btn.zip

جناب Sreza1 شفاف کردن TreeView کار بسیار مشکلی است. ولی امکان پذیر است! اصولا این کار اصلا به درد نمی خورد.

اما برای این کار می توان بعد از Draw شدن در Paint از آن تصویر بگیریم و سپس اعمال مربوط به شفاف سازی را توسط تابع مخصوص بر روی TreeView انجام دهیم.

در ضمن تابع مخصوص شفاف سازی با استفاده از HRGN در یونیت بالا موجود است! :wink:

دوست عزیز ! اصولا کامپوننتهای زیادی در زمینه دکمه های شفاف وجود داره که میتونی از اونا استفاده کنی!! و البته چون این دکمه ها رو میشه براحتی از TImage به ارث برد و حالتهای move و Down آنها را شبیه سازی کرد !! کار چندان سختی نیست!
خوب من یک مثال زدم تا کمی روی اون فکر کنید! ولی به قول خودتون کار مشکلی است! ولی نشدنی نیست! حالا اینکه میگی بدرد نمیخوره!! نمیدونم! من زیاد دارم ازش استفاده میکنم!! در ضمن روی روشی که میگی تا حاالا کار کردی یا ...؟
بهر حال منتظز نظراتت هستم تا ببینیم چی میشه!! در ضمن منظورتو کامل بنویس که توابع شفاف سازی چیه؟؟ تا اونجایی که من میدونم روش شفاف سازی به این سادگی هم نیست! :?

SalarSoft
یک شنبه 01 شهریور 1383, 08:49 صبح
دوست عزیز ! اصولا کامپوننتهای زیادی در زمینه دکمه های شفاف وجود داره که میتونی از اونا استفاده کنی!! و البته چون این دکمه ها رو میشه براحتی از TImage به ارث برد و حالتهای move و Down آنها را شبیه سازی کرد !! کار چندان سختی نیست!
خب اینو منم می دونم دیگه. چون یونیت بالا رو در عرض 2 ساعت کامل کردم!


در ضمن منظورتو کامل بنویس که توابع شفاف سازی چیه؟؟ تا اونجایی که من میدونم روش شفاف سازی به این سادگی هم نیست!

چرا با این تابعی که در یونیت بالا است خیلی هم ساده است!

اسم این تابع CreateRgnFromBitmap است. البته توابع مشابه زیادی وجود دارد که بعضی از آنها خیلی کند عمل می کنند و بعضی دیگر درست عمل نمی کنند. ولی این تابع بع درستی عمل می کند.

Mohammad S
یک شنبه 01 شهریور 1383, 12:28 عصر
آقای سالار سافت، این فایل شما error میده فایل UMaskForm.dcu رو می خواد (البته اگه کامپوننت باشه و باید نصب بشه)

SReza1
یک شنبه 01 شهریور 1383, 18:21 عصر
دوست عزیز salarsoft
خوب من یه هدف داشتم که این topic رو باز کردم اینکه کسانی که در این زمینه کار کردند تجربه خودشونو به دیگران انتقال بدند و قدم به قدم جلو بریم!! من خودم از این جور کامپوننتا نوشتم!! میخواهم با دیگر دوستان روی روشها بحث کنیم!
در زمینه controllهایی که canvas ندارند چه کردی؟؟ :D
کد رو هم بنویس تا روی اون بحث کنیم :wink:

SalarSoft
یک شنبه 01 شهریور 1383, 19:15 عصر
جناب Mohammad S شرمنده کافی فقط UMaskForm رو از قسمت Uses حذف کنید( یادم رفته بود)!

SalarSoft
یک شنبه 01 شهریور 1383, 19:21 عصر
خوب من یه هدف داشتم که این topic رو باز کردم اینکه کسانی که در این زمینه کار کردند تجربه خودشونو به دیگران انتقال بدند و قدم به قدم جلو بریم!! من خودم از این جور کامپوننتا نوشتم!! میخواهم با دیگر دوستان روی روشها بحث کنیم!
ممکنه من حرفایی رو بزنم که برای شما ابتدایی بیاد ولی یادتون باشه یه ملت دارن از سایت دیدن میکنن! :lol:

برای کامپوننت هایی که Canvas ندارند کار کمی مشکل می شه ولی باز هم امکان پذیره! :)

یک روش اینه که یک کلاس ایجاد کنیم و از کامپوننت مورد نظر مون ارث ببریم.
بعدش باید خودمون یک Canvas به اون اظافه کنیم. البته اظافه کردن یک Canvas کمی کار می بره ولی باز هم امکان پذیر است! 8-)

و نکته آخر اینکه حتما کامپوننت مورد نظر ما باید Handle داشته باشد تا توابعی مانند CreateRgnFromBitmap روی آنها عمل کند.
و باز هم می توان Handle را به آن اظافه کرد که البته این یکی کار زیاد تری می خواد.

البته برای نوشتن کد الان وقت ندارم در اولین فرصت حتما! :P

SReza1
سه شنبه 03 شهریور 1383, 19:43 عصر
خوب من یه کد در رابطه با ساختن TCanvas مینویسم! میتونید مثلا در مورد TEdit این Property رو اضافه کنید و یه Edit با Canvas داشته باشید


Private
{ Privated declarations }
.....
....
public
{ Public declarations }
Property Canvas : TControlCanvas Read FCanvas;


....

و در موقع Create ایم کد رو اضافه کنید




FCanvas := TControlCanvas.Create;
FCanvas.Control:= Self;


با این TCanvas خیلی کارا میشه کرد!!
بعد اگه عمری باقی بود در خصوص transparent بودن و ربط اون به Canvas توضبح میدم

user
چهارشنبه 27 آبان 1383, 03:41 صبح
باید ترسیم اونا را خودت مدیریت کنی
با استفاده از رویداد OwnerDraw
به مثالی که تو خود مثالهای دلفی است نگاه کن
delphi7\demos\CustomDraw

MiRHaDi
یک شنبه 01 آذر 1383, 22:02 عصر
سلام
ما منتظر ادامه کار هم هستیم :)
مرسی از همه
بای

mhjb
دوشنبه 14 دی 1383, 19:37 عصر
:موفق: من نمی دانم منظور دقیق شما چیست ولی به راحتی میتوان خاصیت ترانسپرنسی فرم را True کرد و رنگ آن را clWindow گذاشت و به راحتی خواهید دید که Treeview شما Transparent شده است. :sunglass:

toxi
یک شنبه 11 بهمن 1383, 23:55 عصر
عزیزم..
اول اون آقایی که گفتن outline و Treeview رو بهمون بده بدونن که اینارو خوده دلفی داره..ضمنا شما عزیزم لازم نیست به خودت زحمت نوشتن کد و بندوبساته وراثتو اینارو بدی..شما برو سراغ کامپوننت های شرکت Developers Express. حتما میشناسیش دیگه...کنترل های معروفه..مخصوصا Quantom Grid که فوق العاده هست...فکر نکنم واسه دلی گیریدی رو دسته این بیاد...کامپوننت مربوط به treeview ش هم اگه اشتباه نکنم Xtree یا DxTreeView هست..احتمالا دومی.
اگه نداریشون به آیدی یاهوی من پی ام بده واست می فرسیتم...ضمنا از قیمت کامپوننت Quantom Grid خبر داری ؟ ششصد دلار :sunglass: ....من دارمش :wink:

نمی دونم بیام اینجا جواب بعضی از بچه هارو بدم...یا برم سراغ نیوزگروپ های بورلند دنباله بدبختی خودم یا بشینم زود www.iransql.com رو کامل کنم بفرستم بالا. :cry:

vcldeveloper
دوشنبه 12 بهمن 1383, 02:33 صبح
عزیزم..
اول اون آقایی که گفتن outline و Treeview رو بهمون بده بدونن که اینارو خوده دلفی داره..ضمنا شما عزیزم لازم نیست به خودت زحمت نوشتن کد و بندوبساته وراثتو اینارو بدی..
عزیزم...
اگه خوب به این بخش (بخش کارگاه دلفی) دقت کرده باشی، متوجه میشی که اینجا برای یادگیری تکنیک های جدید راه اندازی شده. قصد دوستانی هم که این تاپیک رو ایجاد کردند این بود که با چگونگی transparent کردن کنترلها آشنا بشند، وگرنه همه ما خوب میدونیم که کامپوننت های زیادی برای این کار و کارهای دیگه وجود داره. ولی درک نحوه کار یک کامپوننت به برنامه نویس کمک میکنه سطح آگاهی خودش رو افزایش بده و برنامه های بهتری رو بنویسه. همونطور که اگه شما درک درستی از نحوه عملکرد اتومبیل داشته باشی، می تونی بهتر از کسی که فقط کلاج و گاز و دنده رو میشناسه رانندگی کنی. :wink:


نمی دونم بیام اینجا جواب بعضی از بچه هارو بدم...یا برم سراغ نیوزگروپ های بورلند دنباله بدبختی خودم یا بشینم زود www.iransql.com رو کامل کنم بفرستم بالا.
خواهشا این بار که خواستید جواب بچه ها رو بدید، off topic نفرستید.....با تشکر
:موفق: