![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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