Форум: "Основная";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];
ВнизКак написать разноцветную надпись? Найти похожие ветки
← →
Andrey007 (2002-03-20 10:12) [6]Ну, в общем, я это сделал вот так:
Текст раскрашивается между косыми линиями. Там надпись типа "Количество (500:400/70/30):". 70 пишется зелёным, а 30 - красным.
procedure TForm1.FormPaint(Sender: TObject);
var Zelen,Krasn: String;
i,j,be,en: Integer;
r: TRect;
begin // Uvp - это TTabSheet
if pos("/",Uvp.Caption)=0 then Exit;
en:=length(Uvp.Caption); be:=1; j:=0; // j - счётчик косых линий
for i:=1 to length(Uvp.Caption) do if Uvp.Caption[i]="/" then
begin // зелёный цвет
if j=0 then be:=i else if j=1 then
begin
Krasn:=Copy(Uvp.Caption,1,be);
Zelen:=Copy(Uvp.Caption,be+1,i-be-1);
R:=PageControl.TabRect(1);
if PageControl.ActivePage=Uvp
then R:=Rect(R.Left+PageControl.Canvas.TextExtent(Krasn).cx+6,R.Top+2,
R.Left+PageControl.Canvas.TextExtent(Krasn).cx+
PageControl.Canvas.TextExtent(Zelen).cx+6,R.Bottom)
else R:=Rect(R.Left+PageControl.Canvas.TextExtent(Krasn).cx+6,R.Top+4,
R.Left+PageControl.Canvas.TextExtent(Krasn).cx+
PageControl.Canvas.TextExtent(Zelen).cx+6,R.Bottom);
PageControl.Canvas.Font.Color:=RGB(0,150,0);
PageControl.Canvas.Brush.Color:=clBtnFace;
DrawText(PageControl.Canvas.Handle,Pchar(Zelen),-1,R,DT_LEFT);
en:=i
end;
inc(j)
end
else if Uvp.Caption[i]=")" then
begin // красный цвет
Krasn:=Copy(Uvp.Caption,1,en);
TabCtrl_GetItemRect(PageControl.Handle,1,R); // это тоже самое, что и R:=PageControl.TabRect(1);
Zelen:=Copy(Uvp.Caption,en+1,i-en-1);
if PageControl.ActivePage=Uvp
then R:=Rect(R.Left+PageControl.Canvas.TextExtent(Krasn).cx+6,R.Top+2,
R.Left+PageControl.Canvas.TextExtent(Krasn).cx+
PageControl.Canvas.TextExtent(Zelen).cx+6,R.Bottom)
else R:=Rect(R.Left+PageControl.Canvas.TextExtent(Krasn).cx+6,R.Top+4,
R.Left+PageControl.Canvas.TextExtent(Krasn).cx+
PageControl.Canvas.TextExtent(Zelen).cx+6,R.Bottom);
PageControl.Canvas.Font.Color:=RGB(200,0,0);
PageControl.Canvas.Brush.Color:=clBtnFace;
DrawText(PageControl.Canvas.Handle,Pchar(Zelen),-1,R,DT_LEFT);
end
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.04.01;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c