문자열이 화면에 표시될때의 가로폭은 TCanvas.TextWidth 를 이용하여 확인된다.
1. 문자열이 원하는 길이보다 크면 문자열 뒤에 말줄임표 추가
2. 문자열이 원하는 길이보다 길지 않을 때까지, 말줄임표 앞 1글자를 삭제
3. 말줄임표 앞 1글자가 2바이트 문자의 앞(Lead) 문자일 경우 삭제
AnsiString __fastcall TextEllipsis(TCanvas *C, AnsiString V, int W, const AnsiString &P = "...")
{
for (C->TextWidth(V) > W? V += P: V; V.Length() > 0 && C->TextWidth(V) > W; V.Delete(V.Length() - P.Length(), 1));
if (ByteType(V, V.Length() - P.Length()) == mbLeadByte) {
V.Delete(V.Length() - P.Length(), 1);
}
return V;
}
'Windows > RAD Studio' 카테고리의 다른 글
DLL Export 함수 목록 가져오기 (0) | 2015.10.07 |
---|---|
[CB] Ole - InternetExplorer 띄우기 (0) | 2015.09.17 |
프로세스 종료 (0) | 2015.09.08 |
DLL 기본 주석 문구 해석 (0) | 2015.05.13 |
[Del] TListBox HorizontalScrollBar 표시 (0) | 2015.05.06 |