13.01.2015 Views

Объектно-ориентированное программирование на С++ - eDrive

Объектно-ориентированное программирование на С++ - eDrive

Объектно-ориентированное программирование на С++ - eDrive

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

42<br />

Примером массива является свойство Cells компонента StringGrid, которым<br />

задается содержание ячейки, адресуемой индексами. Массивами описывают<br />

также отдельные панели строки состояния и строки списков.<br />

void Arrays4 () {<br />

MyForm–>StringGrid1–>Cols[1]–>Add (“0-ая ячейка 1-го столбца”);<br />

MyForm–>StringGrid1–>Cols[1]–>Add (“1-ая ячейка 1-го столбца”);<br />

MyForm–>StringGrid1–>Cols[1]–>Append (“2-ая ячейка 1-го столбца”);<br />

MyForm–>StringGrid1–>Cells[2][3] = “Ячейка 2-го столбца 3-ей строки”;<br />

MyForm–>StatusBar1–>Panels–>Items[0]–>Text = "Левая панель";<br />

MyForm–>ListBox1–>Items–>Strings[0] = "Нулевая строка списка";<br />

}<br />

Массивы эффективно используются в графике, <strong>на</strong>пример, для рисования<br />

геометрических фигур по канве формы:<br />

void __fastcall TForm1::FormPaint (TObject *Sender) {<br />

TPoint v[5];<br />

int cw = ClientWidth, ch = ClientHeight;<br />

v[0] = Point (0, cw/10);<br />

v[1] = Point (cw/4, cw/10);<br />

v[2] = Point (cw/2, cw/4);<br />

v[3] = Point (cw/4, cw/4);<br />

v[4] = Point (0, cw/10);<br />

Canvas–>Polyline (v, 4);<br />

v[0] = Point (cw/2, ch/2);<br />

v[1] = Point (cw/2, ch);<br />

v[2] = Point (cw,ch);<br />

Canvas–>Polygon (v,2);<br />

Canvas–>Rectangle (0, ch/2, cw/2, ch);<br />

Canvas–>RoundRect (0, ch/2, cw/2, ch, cw/10, ch/10);<br />

Canvas–>Ellipse (0, ch/2, cw/2, ch);<br />

}<br />

Свойство Pixels типа TColor у компонентов Canvas можно использовать<br />

как двухмерный массив цвета точки, коорди<strong>на</strong>ты которой отсчитываются<br />

от левого верхнего угла изображения.<br />

void _ _fastcall TForm1::FormMouseDown (TObject *Sender,<br />

TMouseButton Button, TShiftState Shift, int X, int Y) {<br />

Label1–>Caption = X; Label2–>Caption = Y;<br />

Label3–>Caption = Canvas–>Pixels[X][Y];<br />

Canvas–>Pixels[X][Y] = clWhite;<br />

}

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!