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.

47<br />

нять, создавать списки, манипулировать строками, сортировать, вставлять,<br />

добавлять и удалять их.<br />

Временные списки и списки длительного пользования проектируют поразному.<br />

Первые обычно создаются и разрушаются в пределах одной функции:<br />

void _ _fastcall TForm1::Button1Click (TObject *Sender) {<br />

TStringList *TempList = new TStringList;<br />

try { Label1–>Caption = “Временный список используется”; }<br />

_ _finally { delete TempList;}<br />

}<br />

Вторые с<strong>на</strong>чала объявляются в файле заголовка формы как указатели<br />

<strong>на</strong> объекты класса TString. Объявленные объекты создаются в конструкторе<br />

формы и освобождают память при ее уничтожении. В приведенном ниже<br />

примере в файле заголовка формы был объявлен открытый указатель<br />

TStringList *ConstList:<br />

__fastcall TForm1::TForm1 (TComponent* Owner): TForm (Owner) {<br />

ConstList = new TStringList;<br />

}<br />

void __fastcall TForm1::FormClose (TObject *Sender, TCloseAction &Action) {<br />

delete ConstList;<br />

}<br />

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

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

TVarRec v [] = {X,Y};<br />

ConstList–>Add (Format ("Курсор в (%d,%d)", v, ARRAYSIZE (v) – 1));<br />

}<br />

Новая строка в конец списка добавляется методом Add. Количество<br />

строк в списке вычисляется методом Count, а свойство Strings содержит весь<br />

массив строк, доступных по их индексам, <strong>на</strong>чи<strong>на</strong>я с 0. Метод IndexOf определяет<br />

индекс строки, содержащей указанный текст, <strong>на</strong>пример:<br />

void StringLists2 () {<br />

MyForm–>ConstList–>Add ("Конец");<br />

MyForm–>ConstList–>Strings [ConstList–>Count–1] =<br />

MyForm–>ConstList–>IndexOf ("Конец");<br />

}<br />

Чтобы добавить i-ю строку в список, используется метод Insert. Для<br />

добавления строк из другого списка служит методы Assign и AddStrings.<br />

Перемещение строк внутри списка выполняется методом Move. Удалением

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

Saved successfully!

Ooh no, something went wrong!