Форум: "Media";
Текущий архив: 2010.03.14;
Скачать: [xml.tar.bz2];
ВнизКак при переносе текста изменить ... на какойто перенос. Найти похожие ветки
← →
452 © (2008-02-23 23:06) [0]
procedure MyDrawText(DC: HDC; AR: TRect; {AWidth: Integer;} AStr: String);
var R: TRect; WR, WAR, HR, HAR: Integer;
begin
R:=AR;
//R.Right:=R.Left+AWidth;
DrawText(DC, PChar(AStr), -1, R, DT_CALCRECT or DT_WORDBREAK or DT_CENTER);
WAR:=AR.Right-AR.Left;
WR:=R.Right-R.Left;
HAR:=AR.Bottom-AR.Top;
HR:=R.Bottom-R.Top;
R.Left:=AR.Left+((WAR-WR) div 2);
R.Right:=R.Left+WR;
R.Top:=AR.Top+((HAR-HR) div 2);
R.Bottom:=R.Top+HR;
DrawText(DC, PChar(AStr), -1, R, DT_WORDBREAK or DT_CENTER);
end;
function GetLongStr(Str:String): String;
var N: Integer;
begin
for N:= 1 to StrToIntDef(Str, 10) do
Result:=Str;
end;
function DivStr(var S: String; R: TRect;bmm,bmdc:HDC): String;
var Flags: LongInt;
begin
Flags:=DT_WORDBREAK or DT_VCENTER or DT_CENTER or DT_MODIFYSTRING or DT_EDITCONTROL or DT_END_ELLIPSIS;
InflateRect(R,-9,-9);
Result:=Copy(S, 1, Length(S));
DrawText(bmdc, PChar(S), -1, R, Flags);
MyDrawText(bmm,R,PChar(S));
S:=StrPas(PChar(S));
if Length(Result)>=(Length(S)+3) then Delete(Result, 1, Length(S)-3) else Result:="";
end;
функцыи отображают текст посредине битмапа по горизонтали и вертикали и переносят текст на новый битмап (если мнгого текста)
repeat
PS:=DivStr("Text demo tttt", R,bitmaptest,bitmap)
until PS="";
нужно сделать умный перенос Русского текста на новий битмап.
← →
452 © (2008-02-24 11:14) [1]
Flags:=DT_WORDBREAK or DT_VCENTER or DT_CENTER or DT_MODIFYSTRING or DT_EDITCONTROL or DT_END_ELLIPSIS;
DrawText(bmdc, PChar(S), -1, R, Flags); //Здесь виртуально прорисовивается текст для нахождения eво RFlags:= ... or DT_MODIFYSTRING or DT_EDITCONTROL or DT_END_ELLIPSIS;
ети флаги позволяют расчитать текст который поместится в заданых размерах если слово не помещается тогда происходит обрыв строки например Сообщени... на новом канвасе е
Нужно сделать перенос Русского текста алгоритмы переноса я нашел вопрос в другом как ево интегрировать.
← →
452 © (2008-02-24 19:10) [2]Да Вижу никто ничево незнает. Или все заняты. Или просебя подумали да пошел он ...google.ru Там я ничево ненашел :)
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2010.03.14;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c