13.01.2015 Views

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

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

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

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

55<br />

void Info (TList *vl) {<br />

AnsiString b;<br />

for (int i=0; iCount; ++i)<br />

{ b += AnsiString (i) + ' ' + (char*) vl–>Items[i] + '\n'; }<br />

ShowMessage ("В списке: " + IntToStr (vl–>Count) + '\n' + b);<br />

}<br />

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

AnsiString a[] = {"Иванов", "Петров", "Сидоров", "Смирнов"};<br />

TList *vList = new TList;<br />

try {<br />

vList–>Capacity = 10;<br />

for (int i=0; iAdd (a[i].c_str ());<br />

Info (vList); // В списке 4: 0 Иванов 1 Петров 2 Сидоров 3 Смирнов<br />

vList–>Remove (vList–>Items[1]); vList–>Delete (1);<br />

Info (vList); // В списке 2: 0 Иванов 1 Смирнов<br />

vList–>Insert (1, a[0].c_str ());<br />

Info (vList); // В списке 3: 0 Иванов 1 Иванов 2 Смирнов<br />

ShowMessage ("Свободно " + IntToStr (vList–>Capacity–vList–>Count)); // 7<br />

vList–>Pack ();<br />

ShowMessage ("Свободно " + IntToStr (vList–>Capacity–vList–>Count)); // 7<br />

} catch (...) { delete vList; throw; }<br />

delete vList;<br />

}<br />

Пример разработки авторского списка без привлечения библиотечного<br />

класса TList:<br />

struct vList { int value; vList *p; };<br />

vList *current, *last, *first;<br />

int Get () {<br />

static value;<br />

int val = MessageDlg ("Продолжать", mtConfirmation,<br />

TmsgDlgButtons () p = 0;<br />

if (last) last–>p = current; else first = current;

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

Saved successfully!

Ooh no, something went wrong!