JS+
Усиленный язык сценариев для Windows
с возможностью встраивания
в ваши приложения
О языке JS+ Справочник Скачать JS+ DLL
Контакты
СПРАВОЧНИК ПО ЯЗЫКУ JS+ Содержание

TTextAttributes

- компонент
Компонент TRichEdit
Определяет шрифтовые атрибуты компонента TRichEdit.
Создание объекта

tatObj=new TTextAttributes(RichEditObj);

Собственные свойства
Свойство Тип Описание
Charset Enum набор символов (см. ниже)
Color TColor цвет текста
Height Number высота символов в пикселях
Name String название шрифта
Pitch Enum способ установки ширины символов (см. ниже)
Protected Boolean защитить текст от изменения
Size Number размер символов в пунктах (1/72 дюйма)
Style Enumset стиль начертания символов (см. ниже)
Только чтение
ConsistentAttributes Enumset атрибуты выделенного текста (см. ниже)

Свойство Charset
Значение Описание
ANSI_CHARSET набор символов ANSI
ARABIC_CHARSET арабский
BALTIC_CHARSET балтийский
CHINESEBIG5_CHARSET китайский традиционный
DEFAULT_CHARSET набор символов по умолчанию
EASTEUROPE_CHARSET восточно-европейский
GB2312_CHARSET китайский континентальный
GREEK_CHARSET греческий
HANGEUL_CHARSET корейский (Wansung)
HEBREW_CHARSET еврейский (Иврит)
JOHAB_CHARSET корейский (Johab)
MAC_CHARSET набор символов Macintosh
OEM_CHARSET набор символов текущей кодовой таблицы Windows
RUSSIAN_CHARSET кириллический
SHIFTJIS_CHARSET японский
SYMBOL_CHARSET набор стандартных символов Windows
THAI_CHARSET тайский
TURKISH_CHARSET турецкий
VIETNAMESE_CHARSET вьетнамский

Свойство Pitch
Значение Описание
fpDefault ширина символов определяется шрифтом
fpFixed символы постоянной ширины
fpVariable символы переменной ширины

Свойство Style
Значение Описание
fsBold полужирный
fsItalic курсив (наклонный)
fsStrikeOut перечеркнутый
fsUnderline подчеркнутый

Свойство ConsistentAttributes
Значение Описание
caBold все символы имеют полужирное начертание
caColor цвет всех символов одинаковый
caFace все символы имеют одно имя шрифта
caItalic все символы имеют курсивное начертание
caProtected все символы защищены от изменения
caSize все символы имеют один размер шрифта
caStrikeOut все символы перечеркнуты
caUnderline все символы подчеркнуты

Собственные методы
Метод Описание

Стандартные методы

Пример (JS+)
var VSW=GetSystemMetrics(SM_CXVSCROLL);

// Главная форма
frm=new TForm();
frm.Caption="JS+ - компонент TTextAttributes";
frm.Width =800;
frm.Height=600;
frm.BorderStyle=bsSizeable;
frm.BorderIcons=biMaximize | biMinimize | biSystemMenu;

// Строка состояния
stb=new TStatusBar(frm);
stb.OnResize=stb_Resize;
stb.SimplePanel=false;
for (i=w=0;i<3;i++) {
  stp=new TStatusPanel(stb);
  switch (i) {
    case 0: continue;
    case 1: stp.Text="Вставка"; break;
    case 2: stp.Text="Строка 000 из 000";
  }
  stp.Alignment=taCenter;
  w+=(stp.numTag=stp.Width=stb.TextWidth(stp.Text)+20);
}
stb.Panels[0].Text=" Пример простого текстового редактора";

// ToolBar
tlb=new TToolBar(frm);
tlb.BorderWidth=4;

// Список шрифтов
cb1=new TComboBox(tlb);
cb1.Name="F";
cb1.AutoDropDown=true;
for (i=max_dx=0;i<Screen.Fonts.Count;i++) {
  cb1.Items.Add(Lst_Str=Screen.Fonts[i]);
  if ((dx=cb1.TextWidth(Lst_Str))>max_dx)
    max_dx=dx;
}
cb1.DropDownCount=Math.min(i,15);
cb1.ClientWidth=max_dx+cb1.TextWidth("_")+VSW;
cb1.OnSelect=cmb_Select;

// Список размеров шрифта
cb2=new TComboBox(tlb);
cb2.Name="S";
cb2.AutoDropDown=true;
cb2.Align=alNone;
for (i=6,max_dx=0;i<50;i+=2) {
  cb2.Items.Add(Lst_Str=""+i);
  if ((dx=cb2.TextWidth(Lst_Str))>max_dx)
    max_dx=dx;
}
cb2.DropDownCount=cb1.DropDownCount;
cb2.ClientWidth=max_dx+cb2.TextWidth("_")+VSW;
cb2.OnSelect=cmb_Select;

// Кнопки
for (i=0;i<7;i++) {
  tbt=new TToolButton(tlb);
  tbt.Style=tbsCheck;
  tbt.ShowHint=true;

  switch (i) {
    // Разделитель
    case 3: tbt.Style=tbsSeparator;
            tbt.Width=4;
            continue;

    // Стиль шрифта
    case 0: tbt_Name="B";
            tbt.Hint="Полужирный";
            break;
    case 1: tbt_Name="I";
            tbt.Hint="Курсив";
            break;
    case 2: tbt_Name="U";
            tbt.Hint="Подчеркнутый";
            break;

    // Выравнивание текста
    case 4: tbt_Name="L";
            tbt.Hint="Влево";
            tbt.AllowAllUp=tbt.Grouped=tbt.Down=true;
            break;
    case 5: tbt_Name="C";
            tbt.Hint="По центру";
            tbt.AllowAllUp=tbt.Grouped=true;
            break;
    case 6: tbt_Name="R";
            tbt.Hint="Вправо";
            tbt.AllowAllUp=tbt.Grouped=true;
  }
  tbt.Name=tbt_Name;

  tbt.LoadImage(JSPlus.HelpDir+"IMAGE\\TRichEdit\\"+tbt_Name+".ico");
  tbt.OnClick=tbt_Click;
}

// RichEdit
rce=new TRichEdit(frm);
rce.BorderStyle=bsSingle;
rce.Align=alClient;
rce.Font.Name="Times New Roman";
rce.Font.Size=10;
rce.OnClick=rce_Click;
rce.OnKeyUp=rce_KeyUp;
rce_StatusLines(rce);

cb1.Text=rce.Font.Name;
cb2.Text=""+rce.Font.Size;

stb_Resize(stb);
rce.SetFocus();
frm.ShowModal();

function rce_StatusLines(rce)
{
  stb.Panels[2].Text="Строка "+
  (rce.CaretPos.y+1)+" из "+(rce.Text.substrings("\n")+1);
}

function rce_ToolBar(rce)
{
  var cmp,pf2,pfType=0,fsType=0,sat=rce.SelAttributes;

  for (i=0;i<tlb.ButtonCount;i++) {
    switch ((cmp=tlb.Buttons[i]).Name) {
      case "L": pfType=PFA_LEFT; break;
      case "C": pfType=PFA_CENTER; break;
      case "R": pfType=PFA_RIGHT; break;
      case "B": fsType=fsBold; break;
      case "I": fsType=fsItalic; break;
      case "U": fsType=fsUnderline; break;
       default: continue;
    }

    if ((cmp.Down) && (pfType>0)) {
      pf2=new TPARAFORMAT2();
      pf2.Mask=PFM_ALIGNMENT;
      pf2.Alignment=pfType;
      rce.SetParaFormat2(pf2);
      pf2.Delete();
      continue;
    }

    if (cmp.Down)
      sat.Style|=fsType;
    else
      sat.Style&=~fsType;
  }
}

// Обработчик события OnClick ToolButton
function tbt_Click(tbt)
{
  var btn,dlg;

  switch (tbt.Name) {
    case "L":
    case "C":
    case "R": if ((!tbt.Down) &&
                 ((btn=tlb.FindChildControl("L"))!=null))
                btn.Down=true;
  }
  rce_ToolBar(rce);
}

// Обработчик события OnClick RichEdit
function rce_Click(rce)
{
  rce_StatusLines(rce);
}

// Обработчик события OnSelect
function cmb_Select(cmb)
{
  var sat=rce.SelAttributes;

  rce.SetFocus();
  switch (cmb.Name) {
    case "F": sat.Name=cmb.Text; break;
    case "S": sat.Size=parseInt(cmb.Text);
  }
}

// Обработчик события OnKeyUp
function rce_KeyUp(rce,Key,Shift)
{
  var Ovr_Str="";

  rce_StatusLines(rce);

  if (Key!=VK_INSERT)
    return;

  rce.numTag=1-rce.numTag;
  switch (rce.numTag) {
    case 0: Ovr_Str="Вставка"; break;
    case 1: Ovr_Str="Замена";
  }
  stb.Panels[1].Text=Ovr_Str;
}

// Обработчик события OnResize
function stb_Resize(stb)
{
  var i,w;

  for (i=stb.Panels.Count-1,w=0;i>0;i--)
    w+=(stb.Panels[i].Width=stb.Panels[i].numTag);
  stb.Panels[0].Width=stb.ClientWidth-w;
}
Совместимость
C++ Builder/Delphi
См. также
JS+Руководство пользователя
Адрес этой страницы: http://jsplus.ru/MANUAL/JSPlus/Component/TRichEdit/TTextAttributes.htm
© 2024,