PDA

View Full Version : سوال: مشکل تو راست چین کردن TreeView



joooje
دوشنبه 17 آبان 1389, 18:48 عصر
سلام

من دوتا سوال داشتم در مورد کار با دلفي
ممنون ميشم اگه کمکم کنيد.
1- من يه TreeView توي دلفي ميسازم. چطور ميتونم اونو راست چين کنم؟ وقتي BiDiMode اونو bdRightToLeft ميکنم فقط اسکرول بارش عوض ميشه ولي هنوز چپ چين هست .. (http://forum.isatice.com/showthread.php?t=53263)
در حقيقت ميخوام کلش راست چين بشه

ممنون از لطفتون

حسین خانی
دوشنبه 17 آبان 1389, 21:35 عصر
با سلام :لبخندساده:

با این کد که یکی از دوستان معرفی کرده بودند مشکل شما حل می شود :
var
Form1: TForm1;

implementation

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;

{$R *.dfm}


//------------------------

procedure TForm1.But_3Click(Sender: TObject);
begin
SetWinControlBiDi(treev1);
tv1.Refresh;
end;


موفق باشید ...

joooje
سه شنبه 18 آبان 1389, 09:34 صبح
با سلام
ممنون از راهنماییتون
ولی هنگام اجرا به این کد گیر میده


SetWinControlBiDi(treev1);

ممنون میشم راهنمایی کنید.من از دلفی 7 استفاده میکنم

mbshareat
سه شنبه 18 آبان 1389, 11:29 صبح
با سلام من هم کد رو امتحان کردم متن داخل TreeView رو راست چین نمی کنه!(نه به خاطر گیر دادن به کد که البته احتمالا دوستمون حواسش به نام TreeView در کد نبوده ):گیج:

Pascal
سه شنبه 18 آبان 1389, 12:30 عصر
با سلام
ممنون از راهنماییتون
ولی هنگام اجرا به این کد گیر میده


SetWinControlBiDi(treev1);



كد ارسالي صحيح است و كار مي كند . شما بايد به جاي treev1 نام كنترل خودتان را بنويسيد .

joooje
چهارشنبه 19 آبان 1389, 10:01 صبح
نه بابا اینقدرهم گیج نیستم
اسم TreeView رو از اول گذاشتم treev1
ولی کامپایل نمیکنه.
و یه ایراد میگیره که یه فایل تو مسیر دلفی موجود نیست
الان پیش سیستم نیستم.رفتم خونه متن دقیق اونو ارسال میکنم
بازم ممنون

Delphi7_love
چهارشنبه 19 آبان 1389, 12:58 عصر
اینو نگاه کنید.
البته همون کد بالاست
59991

Delphi7_love
چهارشنبه 19 آبان 1389, 14:20 عصر
احتمالاٌ اشكال از دلفي شما است. كدي را كه شما گذاشته بوديد را ديدم بدون هيچ مشگلي اجرا شد .
اين هم تصوير برنامه در حال اجرا
خوب اینکه از اول مشکل نداشت دوست عزیز
من این رو واسه دوستمون که گفتن کد بالا خطا داره گذاشتم

حسین خانی
چهارشنبه 19 آبان 1389, 19:32 عصر
با سلام :لبخندساده:

با سلام
ممنون از راهنماییتون
ولی هنگام اجرا به این کد گیر میده


SetWinControlBiDi(treev1);ممنون میشم راهنمایی کنید.من از دلفی 7 استفاده میکنم

اشتباه در نام کنترل TreeView بود :
procedure TForm1.But_3Click(Sender: TObject);
begin
SetWinControlBiDi(treev1);
tv1.Refresh;
end;
کد اصلاح شده :

procedure TForm1.But_3Click(Sender: TObject);
begin
SetWinControlBiDi(treev1);
treev1.Refresh;
end;
موفق باشید ...

joooje
چهارشنبه 19 آبان 1389, 22:07 عصر
سلام
نه من نام رو تغییر داده بودم
مشکل از من بود، دلفی رو مجددا نصب کردم حل شد
کد هم جواب میده و راست چین میکنه.
ممنون
فقط میخواستم بدونم چرا این کد برای بعضی دیگه از اشیاع کار میده ولی برای بعضی نه.
مثلا چطور میشه همین کارو برای ComboBoxEx یا ListView انجام داد؟
برای ListView راست چین میشه ولی قسمت caption همچنان چپ چین باقی میمونه
ممنون میشم اگه راهنمایی کنید.

joooje
جمعه 21 آبان 1389, 15:14 عصر
کسی نمیتونه برای ComboBoxEx یا ListView کمکی کنه؟

ahoura1
شنبه 15 مرداد 1390, 18:10 عصر
من از کد بالا استفاده کردم و CxDbTreeView راست چین (میرور) شد ولی نوشته ها(content) رو هم میرور(mirror) میکنه


آیا راهی برای جلوگیری از میرور (mirror)نوشته ها(data content) دارید؟