با سلام
من به دنبال کامپوننت tree با امکان راست چین بودن tree هستم. ؟؟
با سلام
من به دنبال کامپوننت tree با امکان راست چین بودن tree هستم. ؟؟
راستش من میخواستم چند وقت دیگه این موضوع رو بعنوان یک مقاله بنویسم، اما بدلیل نداشتن فرصت اونرو بصورت یک پست اینجا مینویسم.
فقط یک پیش نویس بگم، انهم اینکه بنظر من هیچ زبانی بهتر از دلفی برنامه نویسی ویندوز را لذت بخش نمیکند!
چرا؟ خوب خودتون ببینید...
این کدی است که من برای آینه کردن کامپوننت های مبتنی بر ویندوز (مشتقات TWinControl) در دلفی نوشتهام:
const
WS_EX_NOINHERITLAYOUT = $00100000; // Disable inheritence of mirroring by children
WS_EX_LAYOUTRTL = $00400000; // Right to left mirroring
procedure SetWinControlBiDi(Control: TWinControl);
var
ExStyle: Longint;
begin
ExStyle := GetWindowLong(Control.Handle, GWL_EXSTYLE);
SetWindowLong(Control.Handle, GWL_EXSTYLE, ExStyle or WS_EX_RTLREADING or WS_EX_RIGHT
or WS_EX_LAYOUTRTL or WS_EX_NOINHERITLAYOUT );
end;
نحوه استفاده:
نام کامپوننت مورد نظر (در اینجا TreeView خود دلفی) را به آن پاس کنید. مثال:
SetWinControlBiDi(TreeView2);
به تصویر انتهای صفحه توجه کنید.
نکته: این کد در ویندوزهایی که قابلیت نمایش متون راست به چپ دارند (مانند ویندوزهای 98، Me عربی/فارسی، ویندوز 2000 و XP که زبان فارسی یا عربی آن فعال شده باشد) کار میکند.
مهدی جان ممنون
بخدا منم تو محل کارم با دلفی برنامه نویسی می کنم :lol:
به هرحال ممنون
آقا این خیلی جالبه میشه مقالت رو بنویسی و در سایت بزاری.
من تا حالا به یه چنین چیزی فکر نکرده بودم.
خسته نباشی دوست عزیزم :kiss:
ممنونم اقای کرامتی :flower:
با سلام
مهدی جان این رو کد واسه کامپوننت 1classst کار نکرد. یعنی خیلی خیلی آینه شد :lol:
سلام اسیستی جون
این کد برای treelist هم کار نکرد :(
من یه چیزی رو دیدم که بد نیست بگم. این درختها معمولا برای نمایش برگهایی که اندازهشون از عرض درخ بیشتر است hint اون برگ رو نشون میدهند. ولی من تو درخت بالا چنین چیزی ندیدم. چیزه خاضی باید تنظیم بشه؟
مشکل کاملا آینهای شدن موارد فوق مربوط به نحوه رسم متن در آن کامپوننت و تابع استفاده شده برای اینکار میباشد.
بعنوان تمرین میتوانید در سورس TTreeView دلفی ببینید آیتم های TreeView را با چه تابعی رسم میکند و سورس کامپوننتهای فوق را طوری تغییر دهید که از آن استفاده کند.
کمپاننت VirtualTreeView (آخرین نسخه اش) برای موارد TreeView فارسی بسیار جالب و کارا است.
می ارزه یک بار امتحانش کنید.
اگر Net. نمی دانید وارد نشوید.
سلام
همونطور که خودتون فرمودید خیلی درد سر داره کار کردن باهاش
اگه وقت دارید توی یک مقاله تجربیاتتون رو انتقال بدید خیلی مفید خواهد بود
بای
مهدی جان دستت درد نکنه
منم بی صبرانه منتظر مقاله ت هستم
موفق باشی
سلام آقای کرامتی
به این روش که فرمودید دیگر OnContextPopup کار نمی کند . راه حلی دارید؟
ته کد این رو اضافه کنید
Control.Invalidate;
البته با اجازه نویسنده اولیه .
نمونه کدی رو که جناب کرامتی در سایت گذاشتند من بصورت مثال درآوردم میتونید از اون استفاده کنید :
http://www.barnamenevis.org/sh...536#post252536
با این کار کنترل راست به چپ میشه ولی هینتها درست نمایش داده نمیشه و همینطور کلید سمت چپ و راست درخت رو برعکس باز و بسته میکنه
البته این کد با VCLSkin هم مشکل پیدا می کنه!!!
البته من Virtual Tree View رو پیدا کردم که هم یونیکد رو پشتیبانی می کنه هم راست به چپ و صد البته که رایگان !!!
اینم لینکش
http://www.soft-gems.net/VirtualTreeview/