Тема: TLabel
Показать сообщение отдельно
  #2  
Старый 06.03.2010, 19:41
Аватар для Admin
Admin Admin вне форума
Администратор
 
Регистрация: 03.10.2005
Адрес: Россия, Москва
Сообщения: 1,553
Версия Delphi: Delphi 7
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Ama
Добрый вечер всем!!! Есть ли у кого нидь компонент TLabel, который при сокращении текста, не тупо обрезает, а ставит троеточие, например : 'эвамиваияваивяияваиакку', а обрезанный : 'эвамиваиява...' ? Ну чтоб сокращение (троеточие) мог ставить либо в начале, либо в середине, либо в конце
Код:
function TForm3.end_points(lbl: TLabel): string;
var
 s: string;
 i: integer;
begin
 s:=lbl.Hint;
 //
 if lbl.Canvas.TextWidth(s)<=lbl.Width
 then
  begin
   result:=s;
   lbl.ShowHint:=false;
   Exit;
  end;
 //
 lbl.Caption:='';
 //
 for i:=1 to Length(s) do
  begin
   lbl.Caption:=lbl.Caption+s[i];
   if (lbl.Canvas.TextWidth(lbl.Caption)+16>=lbl.Width)
   then
    begin
     result:=lbl.Caption+'...';
     lbl.ShowHint:=true;     
     Break;
    end;
  end;
end;
Ответить с цитированием