# Native Code > برنامه نویسی در Delphi > برنامه نویسی موبایل در Delphi >  راست چین کردن Listview

## jst

به لطف دوستان تقریبا همه مشکلات و موتنع جهت تولید نرم افزار فارسی فراهم شده بجز نمایش listview به صورت راست چین . آیا دوستان راهکاری پیشنهاد می کنند ؟

----------


## golbafan

سلام از لیست ویو های سایر کامپوننت ها استفاده کنید

مثلا از کامپوننت های jvcl یا tms

----------


## jst

اینها هم راست چین ندارند . یا شایدم من پکیج اشتباهی دانلود کردم

----------


## BORHAN TEC

من متوجه نیستم که در برنامه vcl میخواهید لیست ویو رو راست به چپ کنید یا در FMX !!!
ولی اگه قصدتون اینه که ListView رو توی VCL راست به چپ کنید باید از روال زیر استفاده کنید. این روال کاملاً تست شده و جواب میده:
procedure TForm1.SetRightToLeftListView(lv: TListView);const
  LVM_FIRST = $1000; // ListView messages
  LVM_GETHEADER = LVM_FIRST + 31;
var
  header: thandle;
begin
  header := SendMessage(lv.Handle, LVM_GETHEADER, 0, 0);
  SetWindowLong(header, GWL_EXSTYLE, GetWindowLong(header, GWL_EXSTYLE) or
    WS_EX_LAYOUTRTL or WS_EX_NOINHERITLAYOUT);


  SetWindowLong(lv.Handle, GWL_EXSTYLE, GetWindowLong(lv.Handle, GWL_EXSTYLE) or
    WS_EX_LAYOUTRTL or WS_EX_NOINHERITLAYOUT);
  lv.invalidate; 


  lv.Width := lv.Width +1;
  lv.Width := lv.Width -1;
end;

----------


## jst

ضمن تشکر در FMX می خوام راست چین بشه

----------


## Mask

البته من خودم هم مشکل دارم .اما یه سری به کامپوننتهای TMS که برای فای مانکی داده بزن ببین چطوره قضیه و اعلام کن.

----------


## jst

اتفاقا نصبش کردم یه ابزاری بنام table view داره که نتونستم باهاش کارکنم و البته که راست چین نداشت .

----------


## BORHAN TEC

> البته من خودم هم مشکل دارم .اما یه سری به کامپوننتهای TMS که برای فای مانکی داده بزن ببین چطوره قضیه و اعلام کن.


هیچ فرقی نمیکنه. مادامی که خود FMX به صورت ذاتی bidi mode نداره هیچ شرکتی نمیاد کامپوننتهایی بسازه که از این ویژگی پشتیبانی کنه. مطلبی مثل این حرفی که زدم رو در نوشته های تیم tms هم دیده بودم.

----------


## یوسف زالی

شاهین جان باهات موافق نیستم،
می تونی کامپوننت هایی با قابلیت BiDiMode بسازی.
منتها برای شرکت سازنده توجیه اقتصادی نداره.
البته اگر FMX این قابلیت رو داشت، خیلی بهتر بود، اما با توجه به این که سورس اون موجوده، می شه با جایگزین کردن یونیت مربوط به کلاس های زیربنایی، مثل TControl و یا یکم پایین تر مثل TCustomEdit این قابلیت رو بهش اضافه کرد. منتها کار زیادی می طلبه و فکر می کنم شرکت ها به این دلیل راغب نیستند که خود Embarcadero احتمالا پلن چنین چیزی رو داره و نمی خوان کار تکراری و البته با هزینه زیاد و سود کم انجام بدند.

----------


## BORHAN TEC

حاج یوسف، من نگفتم که نمیشه، گفتم که شرکتی نمیاد این کار رو بکنه(بنا به همون دلایلی که گفتی) مگر اینکه خود FMX به صورت ذاتی بیاد و این قابلیت رو اضافه کنه تا بقیه شرکتها هم بیاد کامپوننتهایی با پشتیبانی از راست به چپ بسازند. تا الان فکر میکنم که بالای 20 بار از آقای مارکو کانتو این موضوع رو پرسیدم و ایشون میگن که این موضوع جزو مهمترین موضوعات در نقشه راه ماست ولی انجامش پیچیده و زمانبر هست. به نظر بنده احتمال اینکه شرکتی بیاد و این کار رو در حال حاضر انجام بده زیر یک درصده!!!

----------


## D-graphics programmer

procedure TForm1.Button1Click(Sender: TObject);
var
 item:tlistboxitem;
 i:byte;
begin
//right to left
for i := 0  to 3 do
 begin
  item:=tlistboxitem.Create(self);
  item.StyledSettings := item.StyledSettings - [TStyledSetting.ssOther];
  item.TextSettings.HorzAlign:=TTextAlign.Trailing;
  item.Text:=FormatFloat('Right : 0#',i);
  listbox1.AddObject(item);
 end;
//center
for i := 0  to 3 do
 begin
  item:=tlistboxitem.Create(self);
  item.StyledSettings := item.StyledSettings - [TStyledSetting.ssOther];
  item.TextSettings.HorzAlign:=TTextAlign.Center;
  item.Text:=FormatFloat('Center : 0#',i);
  listbox1.AddObject(item);
 end;
//left to right
for i := 0  to 3 do
 begin
  item:=tlistboxitem.Create(self);
  item.StyledSettings := item.StyledSettings - [TStyledSetting.ssOther];
  item.TextSettings.HorzAlign:=TTextAlign.Leading;
  item.Text:=FormatFloat('Left : 0#',i);
  listbox1.AddObject(item);
 end;
end;

----------


## D-graphics programmer

البته در ListView می تونی تو پروپرتی هاش ست بکنی 
        چپ ...... راست...... وسط

Object inspector > itemObjects > Text > TextAlign [Center , Trailing  ,  Leading ]

پست قبلی برای ListBox بود

----------

