Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ListBox


Sonic90 ©   (2007-05-12 23:15:00) 

У меня такой вопрос:если текст в строке листбокса весь не помещается,то как сделать чтобы то,что не помещается заменялось допустим на "..."?


Германн   (2007-05-13 02:44:00) [1]

Когда-то не помню уже когда, но давно сам "сконстропупил " такую вот функцию:
function MinText(const Text: string; Canvas: TCanvas; MaxWidth: Integer): string;
var
 I: Integer;
begin
 Result := Text;
 I := 1;
 while (I <= Length(Text)) and (Canvas.TextWidth(Result) > MaxWidth) do begin
   Inc(I);
   Result := Copy(Text, 1, Max(0, Length(Text) - I)) + '...';
 end;
end;

И вызывал её в DBGrid1DrawColumnCellследущим образом:
St:=Column.Field.Text;
St:=MinText(St,DBGrid1.Canvas,Rect.Right-Rect.Left);

:)


Sonic90   (2007-05-13 00:35:00) [2]


> {RASkov} ©   (12.05.07 23:51) [1]
> DrawText и DT_END_ELLIPSIS
> на OnDrawItem

Спасибо.


{RASkov}   (2007-05-12 23:51:00) [3]

> [0] Sonic90   (12.05.07 23:15)

DrawText и DT_END_ELLIPSIS
на OnDrawItem


Наверх

Титульная страница Поиск, карта сайта Написать письмо