PDA

View Full Version : Right To Left کردن ListBox



Restlesa
دوشنبه 23 خرداد 1390, 22:52 عصر
سلام بر همگی دوستان برنامه نویس
ایا امکانی وجود داره که بشه برای لیست باکس خاصیت Right To Left ایجاد کرد ؟؟؟؟

Mr.Unknown
دوشنبه 23 خرداد 1390, 23:36 عصر
سورس ضمیمه شد.موفق باشید

samaddj666
سه شنبه 24 خرداد 1390, 00:07 صبح
سلام دوست عزيز من چند وقتي بود که با اين مشکل روبه رو بودم اما از هرکي ميپرسيدم هيچکس چيزي نمي دونست اين واقعا مشکل من رو حل کرد.:قلب:

vbhamed
سه شنبه 24 خرداد 1390, 08:08 صبح
سلام

ليست باكس كه خودش همچين خاصيتي داره !

محسن واژدی
سه شنبه 24 خرداد 1390, 08:58 صبح
سلام

ليست باكس كه خودش همچين خاصيتي داره !

سلام علیکم
خوبی این روش این است که در هر صورت حتی اگر RTL لیست باکس غیرفعال باشد، آنرا RTL می نماید

موفق باشید

محسن واژدی
سه شنبه 24 خرداد 1390, 10:36 صبح
در تصویر زیر خاصیت RTL برای ListBox فعال شده است منتها border آن حذف شده است

برای فعال کردن border لیست باکس پارامتر "131072" را به انتخاب دستور:

SetWindowLong List1.hWnd, GWL_EXSTYLE, WS_EX_LAYOUTRTL

بیافزائید، یعنی بدین صورت:

SetWindowLong List1.hWnd, GWL_EXSTYLE, WS_EX_LAYOUTRTL Or 131072 '131072: WS_EX_STATICEDGE


مکان این تابع: Form1.Form_Load

موفق باشید

Restlesa
سه شنبه 24 خرداد 1390, 12:24 عصر
آقا محسن ممنونم ولی سورسی که شما گذاشتین کار نمی کنه

Mr.Unknown
سه شنبه 24 خرداد 1390, 12:28 عصر
این کد ها رو داخل ماژول قرار بدید مشکل حل میشه

Public Const GWL_EXSTYLE = -20
Public Const WS_EX_LAYOUTRTL = &H400000

Restlesa
سه شنبه 24 خرداد 1390, 12:33 عصر
ممنونم ولی یه مشکلی وجود داره و اونم اینه که تنها سمت راست لیتس باکسم Border داره
چه طوری میشه کاری کرد که هر چهار طرفش Border داشته باشه ؟؟؟؟

محسن واژدی
سه شنبه 24 خرداد 1390, 14:03 عصر
نمونه زیر مشکل RTL برای همه اشیاء از جمله لیست باکس را همراه با نگهداری خصوصیات شی برطرف میکند

موفق باشید
یاعلی

vbhamed
چهارشنبه 25 خرداد 1390, 08:38 صبح
سلام علیکم
خوبی این روش این است که در هر صورت حتی اگر RTL لیست باکس غیرفعال باشد، آنرا RTL می نماید
موفق باشید

سلام
به نظر شما اين واقعا دليل قابل قبولي است ؟
خب آدم اگر نياز به RTL داره فعالش مي كنه چه كاريه كه بياد لقمه رو از پشت سرش بچرخونه

ولي خب اين سورس شما براي كنترلهايي كه خودشون RTL ندارن خيلي مفيده

محسن واژدی
پنج شنبه 26 خرداد 1390, 01:38 صبح
سلام
به نظر شما اين واقعا دليل قابل قبولي است ؟
خب آدم اگر نياز به RTL داره فعالش مي كنه چه كاريه كه بياد لقمه رو از پشت سرش بچرخونه


سلام علیکم
ببخشید، انگار منظورم رو کامل توضیح ندادم

بله، صحیح میفرمائید، منظور بنده از غیرفعال بودن RTL نه False بودن معمولی آنها در لیست properties بود بلکه عدم پشتیبانی کامل خاصیت RTL در برخی از ویندوزهاست که البته این خود قابل فعال کردن است (که البته خودتان بهتر واقف موضوع هستید) و آن هم برای ویژوال بیسیک نیازمند یک فایل بود که متاسفانه الآن نامش را در ذهن ندارم
اما اینگونه که بررسی کردم و از انجایی که در حال حاضر خاصیت RTL در ویندوز رایانه ام نیز غیرفعال بود این روش درهر حال لیست و هر شی دیگر را راست به چپ میکرد که میتواند برای اینگونه موقعیت ها مفید باشد

موفق باشید

vbhamed
پنج شنبه 26 خرداد 1390, 13:37 عصر
سلام

فايل VBAME.DLL رو از پوشه SYSTEM32 يك ويندوز بدون مشكل تو پوشه SYSTEM32 ويندوز خودتون بريزيد و رونويسي كنيد، مشكل حل ميشه

محسن واژدی
پنج شنبه 26 خرداد 1390, 14:33 عصر
سلام

فايل VBAME.DLL رو از پوشه SYSTEM32 يك ويندوز بدون مشكل تو پوشه SYSTEM32 ويندوز خودتون بريزيد و رونويسي كنيد، مشكل حل ميشه

سلام علیکم
بله همین فایل رو منظورم بود

موفق باشید

Restlesa
شنبه 28 خرداد 1390, 13:06 عصر
دوست عزيز از سورسي كه گذاشتي بسيار سپاسگذارم واقعا سورس كاربردي بود
ولي يه سوال دارم و اونم اينه كه چه طوري مي تونم object مورد نظر رو به حالت اوليه يعني ltr تبديل كنم ؟؟؟؟
ممنون ميشم اين مشكل رو حل كني

محسن واژدی
شنبه 28 خرداد 1390, 14:23 عصر
سلام علیکم
سورس زیر همان سورس قبلیست منتها امکان LTR نیز وجود دارد

موفق باشید