mbshareat
چهارشنبه 14 مهر 1389, 17:05 عصر
من نیاز به یه کادر لیست دارم که هر آیتم از اون یک یا چند خط باشه. می دونم می شه نوشتن در
ListBox رو با تنظیم پراپرتی Style برابر lbOwnerDrawFixed به عهده گرفت ولی سه مشکل باقی می مونه:
1. انتخاب چند خطی نیست و کادر انتخاب (چیزی مثل DrawFocusRect) روی یک خط ظاهر می شه!:افسرده:
2.نمی دونم کی باید تعیین کنم یه آیتم انتخاب شده تا طراحی اون رو توی رویداد OnDrawItem انجام بدم.من برای امتحان خواستم پس زمینه رو زرد کنم هم آیتمها زرد شدند. اون هم به محض اجرای برنامه.با این کد::عصبانی:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
ListBox1.Canvas.Brush.Color:=clYellow;
ListBox1.Canvas.FillRect(Rect);
end;
3.تنظیم نوار لغزنده کنار کادر.:بامزه:
شاید بشه از RichEdit یا Memo هم استفاده کرد ولی هم لغزنده نداند هم انتخاب ندارند.
نمی دونم کامپوننت مخصوص این کار هم طراحی شده یا نه؟(البته من می خوام متن هم چند رنگ و لبه نرم باشه که راهشو هم بلدم و توی RichEdit نمی شه)
کسی راه حلی سراغ نداره؟ که حد اقل دو مشکل اول رو حل کنم؟:لبخندساده:
ListBox رو با تنظیم پراپرتی Style برابر lbOwnerDrawFixed به عهده گرفت ولی سه مشکل باقی می مونه:
1. انتخاب چند خطی نیست و کادر انتخاب (چیزی مثل DrawFocusRect) روی یک خط ظاهر می شه!:افسرده:
2.نمی دونم کی باید تعیین کنم یه آیتم انتخاب شده تا طراحی اون رو توی رویداد OnDrawItem انجام بدم.من برای امتحان خواستم پس زمینه رو زرد کنم هم آیتمها زرد شدند. اون هم به محض اجرای برنامه.با این کد::عصبانی:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
ListBox1.Canvas.Brush.Color:=clYellow;
ListBox1.Canvas.FillRect(Rect);
end;
3.تنظیم نوار لغزنده کنار کادر.:بامزه:
شاید بشه از RichEdit یا Memo هم استفاده کرد ولی هم لغزنده نداند هم انتخاب ندارند.
نمی دونم کامپوننت مخصوص این کار هم طراحی شده یا نه؟(البته من می خوام متن هم چند رنگ و لبه نرم باشه که راهشو هم بلدم و توی RichEdit نمی شه)
کسی راه حلی سراغ نداره؟ که حد اقل دو مشکل اول رو حل کنم؟:لبخندساده: