| 
|  |  | 
| 
|  |  | Определяет одну из стандартных графических фигур. 
  
Создание объекта
shpObj=new TShape(Parent);
 
 
| Собственные свойства |  | 
| Свойство | Тип | Описание |  
| Brush | TBrush | дескриптор кисти графической канвы |  
| Pen | TPen | дескриптор пера графической канвы |  
| Shape | Enum | тип графической фигуры (см. ниже) |  
| Только чтение | [TYPE] | [DESC] |  
| Canvas | TCanvas | дескриптор графической канвы |  |  
 
| Свойство Shape |  | 
| Значение | Описание |  
| stCircle | круг |  
| stEllipse | эллипс |  
| stRectangle | прямоугольник |  
| stRoundRect | прямоугольник с плавными углами |  
| stRoundSquare | квадрат с плавными углами |  
| stSquare | квадрат |  |  
Стандартные свойства
 
 
| Собственные методы |  | 
| Метод | Описание |  
| StyleChanged | перерисовывает текущую графическую фигуру |  |  
Стандартные методы
 
Стандартные события
 
// Главная формаfrm=new TForm();
 frm.Caption="JS+ - визуальный компонент TShape";
 frm.Width =600;
 frm.Height=450;
 
 // Строка состояния
 stb=new TStatusBar(frm);
 stb.SimpleText=
 " Выберите фигуру из списка или перемещайтесь по списку"+
 " колесом мыши";
 
 // ListBox
 lsb=new TListBox(frm);
 lsb.BorderStyle=bsSingle;
 lsb.SetBounds(10,10,frm.ClientWidth/5,stb.Top-20);
 lsb.Items.Add("Square");
 lsb.Items.Add("RoundSquare");
 lsb.Items.Add("Rectangle");
 lsb.Items.Add("RoundRect");
 lsb.Items.Add("Circle");
 lsb.Items.Add("Ellipse");
 lsb.OnMouseDown=lsb_MouseDown;
 lsb.OnMouseWheel=lsb_MouseWheel;
 
 // Панель
 pnl=new TPanel(frm);
 pnl.BorderStyle=bsSingle;
 pnl.Color=lsb.Color;
 pnl.Left=lsb.Left+lsb.Width+10;
 pnl.Top =lsb.Top;
 pnl.Width =frm.ClientWidth-pnl.Left-10;
 pnl.Height=stb.Top-20;
 
 // Shape
 shp=new TShape(pnl);
 shp.SetBounds(50,50,pnl.ClientWidth-100,pnl.ClientHeight-100);
 shp.Brush.Color=clNavy;
 
 lsb.ItemIndex=0;
 lsb.SetFocus();
 frm.ShowModal();
 
 // Обработчик события OnMouseDown
 function lsb_MouseDown(lsb,btn,sft,x,y)
 {
 var lsb_Str="",i=lsb.ItemIndex;
 
 lsb.Selected[i]=true;
 
 if (btn!=mbLeft)
 return;
 
 switch (shp.Shape=eval("st"+lsb.Items[i])) {
 case stRoundRect : lsb_Str=" с плавными углами";
 case stRectangle : lsb_Str="прямоугольник"+lsb_Str; break;
 case stRoundSquare: lsb_Str=" с плавными углами";
 case stSquare : lsb_Str="квадрат"+lsb_Str; break;
 case stEllipse : lsb_Str="эллипс"; break;
 case stCircle : lsb_Str="круг"; break;
 default: return;
 }
 
 stb.SimpleText=" Выбран "+lsb_Str;
 }
 
 // Обработчик события OnMouseWheel
 function lsb_MouseWheel(lsb,sft,dlt,pos,handled)
 {
 if (dlt>0) {
 if (lsb.ItemIndex>0)
 --lsb.ItemIndex;
 }
 else
 if (dlt<0) {
 if ((lsb.ItemIndex+1)<lsb.Count)
 ++lsb.ItemIndex;
 }
 else
 return;
 
 lsb_MouseDown(lsb,mbLeft);
 }
 
Совместимость
C++ Builder/Delphi
 |  | 
| JS+ | Руководство пользователя |  |  |  |  |  |  |