![]()  | 
	
 
  | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Добрый вечер всем!!! Есть ли у кого нидь компонент TLabel, который при сокращении текста, не тупо обрезает, а ставит троеточие, например : 'эвамиваияваивяияваиакку', а обрезанный : 'эвамиваиява...' ? Ну чтоб сокращение (троеточие) мог ставить либо в начале, либо в середине, либо в конце 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Цитата: 
	
 Код: 
	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; | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Спс за помощь. Вобщем я понял так что надо создать свой компонент чтобы решить проблему раз и на всегда 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Можно воспользоваться API, если многоточие в конце: 
		
	
		
		
		
		
		
	
		
		
	
	
	Код: 
	procedure TForm1.Button1Click(Sender: TObject);
var
  S: String;
  R: TRect;
begin
  S:= 'эвамиваияваивяияваиакку';
  R:= Label1.ClientRect;
  DrawText(Label1.Canvas.Handle,
    PAnsiChar(S),
    Length(S),
    R,
    DT_END_ELLIPSIS);  
end; | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Вот спасибо. Я попробую. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 |