به لطف دوستان تقریبا همه مشکلات و موتنع جهت تولید نرم افزار فارسی فراهم شده بجز نمایش listview به صورت راست چین . آیا دوستان راهکاری پیشنهاد می کنند ؟
به لطف دوستان تقریبا همه مشکلات و موتنع جهت تولید نرم افزار فارسی فراهم شده بجز نمایش listview به صورت راست چین . آیا دوستان راهکاری پیشنهاد می کنند ؟
سلام از لیست ویو های سایر کامپوننت ها استفاده کنید
مثلا از کامپوننت های jvcl یا tms
اینها هم راست چین ندارند . یا شایدم من پکیج اشتباهی دانلود کردم
من متوجه نیستم که در برنامه 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;
ضمن تشکر در FMX می خوام راست چین بشه
البته من خودم هم مشکل دارم .اما یه سری به کامپوننتهای TMS که برای فای مانکی داده بزن ببین چطوره قضیه و اعلام کن.
اتفاقا نصبش کردم یه ابزاری بنام table view داره که نتونستم باهاش کارکنم و البته که راست چین نداشت .
شاهین جان باهات موافق نیستم،
می تونی کامپوننت هایی با قابلیت BiDiMode بسازی.
منتها برای شرکت سازنده توجیه اقتصادی نداره.
البته اگر FMX این قابلیت رو داشت، خیلی بهتر بود، اما با توجه به این که سورس اون موجوده، می شه با جایگزین کردن یونیت مربوط به کلاس های زیربنایی، مثل TControl و یا یکم پایین تر مثل TCustomEdit این قابلیت رو بهش اضافه کرد. منتها کار زیادی می طلبه و فکر می کنم شرکت ها به این دلیل راغب نیستند که خود Embarcadero احتمالا پلن چنین چیزی رو داره و نمی خوان کار تکراری و البته با هزینه زیاد و سود کم انجام بدند.
توابع تبدیل تاریخ با دقت 5000 سال
پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/
نرم افزار پخش مویرگی
حاج یوسف، من نگفتم که نمیشه، گفتم که شرکتی نمیاد این کار رو بکنه(بنا به همون دلایلی که گفتی) مگر اینکه خود FMX به صورت ذاتی بیاد و این قابلیت رو اضافه کنه تا بقیه شرکتها هم بیاد کامپوننتهایی با پشتیبانی از راست به چپ بسازند. تا الان فکر میکنم که بالای 20 بار از آقای مارکو کانتو این موضوع رو پرسیدم و ایشون میگن که این موضوع جزو مهمترین موضوعات در نقشه راه ماست ولی انجامش پیچیده و زمانبر هست. به نظر بنده احتمال اینکه شرکتی بیاد و این کار رو در حال حاضر انجام بده زیر یک درصده!!!
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;
البته در ListView می تونی تو پروپرتی هاش ست بکنی
چپ ...... راست...... وسط
Object inspector > itemObjects > Text > TextAlign [Center , Trailing , Leading ]
پست قبلی برای ListBox بود