با سلام و ادب
دوستان وقتی از ComboBox دلفی استفاده میکنم در زمان راست به چپ کردن وقتی Style را csOwnerDrawFixed انتخاب میکنم ComboBox در نمایش اطلاعات از راست به چپ دچار مشکل میشه لطفا راهنمایی کنید ممنون
Untitled-1.jpg
با سلام و ادب
دوستان وقتی از ComboBox دلفی استفاده میکنم در زمان راست به چپ کردن وقتی Style را csOwnerDrawFixed انتخاب میکنم ComboBox در نمایش اطلاعات از راست به چپ دچار مشکل میشه لطفا راهنمایی کنید ممنون
Untitled-1.jpg
سلام و احترام
ببینید این کد به درد میخوره؟
procedure SetWinControlBiDi(Control: TWinControl);
var
ExStyle: Longint;
const
WS_EX_NOINHERITLAYOUT = $00100000; // Disable inheritence of mirroring by children
WS_EX_LAYOUTRTL = $00400000; // Right to left mirroring
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;
ممنون از توجه شما دوست عزیز
نه این کد هم همچنان همون مشکل را دارد فقط کاری که انجام میشه دکمه باز کننده ComboBox را به سمت راست منتقل میکنه
Untitled-1.jpg
csOwnerDrawFixed برای این هست که خودتون متن داخلش رو بنویسید. من خودم هم در برنامه ام از یه لیست باکس برای نمایش متن فارسی استفاده میکنم. باید طول متن رو با Canvas.TextWidth به دست بیارید و از Rect.Right کم کنید و با TextOut بنویسید.. البته اگر متن شما حاوی فاصله در راست یا چپ، باشه در مواردی مشکلاتی پیش میاد. در برنامه خودم، کلمات رو یکی یکی می نویسم.(در برنامه من، همه متن فارسی یا ترکیب فارسی و انگلیسی نیست و حتی شکل هم هست(قلم داس!))
اما نمی دونم چرا نیاز دارید خودتون متن رو بنویسید؟