Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.doc
Скачиваний:
25
Добавлен:
14.02.2015
Размер:
641.54 Кб
Скачать

Урок 12. Компонент ListBox

Компонент ListBox(список) расположен на вкладкеStandardПалитры Компонентов:

Сейчас мы с вами рассмотрим стандартные операции, которые можно делать с ListBox'ом - добавление новых пунктов, их удаление, поиск нужного пункта, очистка всегоListBox'а и др.

Пункты для нашего ListBox'а хранятся в его свойствеItems. Для задания этого свойства на этапе разработки щелкните на многоточии рядом с ним в Инспекторе объектов:

Появится диалоговое окно StringListEditor, в котором вы и перчатаете нужные вам элементы списка:

Если же вам надо добавить новый пункт на этапе работы программы, то надо воспользоваться методом Addупомянутого свойстваItems:

ListBox1->Items->Add("New String");

Этот метод добавит новый элемент в конец списока. Если же нам надо добавить новый элемент куда-нибудь в середину, то используем метод Insert:

ListBox1->Items->Insert(1,"Roma");

Для очистки всего списка вызываем метод Clear:

ListBox1->Items->Clear();

Если нам надо удалить i-й элементListBox'а, то мы используем методdelete:

ListBox1->Items->Delete(1);

Нумерация элементов списка идет с нуля, так что указанный пример удалит второй сверху элемент (номер у которого будет равен одному).

Определить выделенный элемент списка позволяет свойство ItemIndex. Оно представляет из себя номер выделенного элемента (нумерация идет с нуля). Если ни один элеимент не выделен, то это свойство равно -1. Вот так, например, будет выглядеть код, который при шелчке наListBox'е покажет вMessageBox'е номер элемента, на ктором был произведен щелчок:

void __fastcall TForm1::ListBox1Click(TObject *Sender)

{

ShowMessage(IntToStr(ListBox1->ItemIndex));

}

Если вам надо, чтобы в ListBox'е пользователь имел возможность выделить сразу несколько элментов, то установите свойствоMultiSelectвtrue(по умолчанию оно равноfalse).

Урок 13. Компонент ComboBox

Компонент ComboBox(комбинированный список) расположен на вкладкеStandardПалитры Компонентов:

Этот компонент по своим свойствам очень похож на компонент ListBox. Методы и свойства он имеет почти те же самые. Самое важное из них - это, пожалуй, свойствоItems. Именно в нем и хранятся все строкиComboBox'а. Из отличных отListBox'а свойств выделим свойствоText. Оно дает нам текст в нашемComboBox'е (т.е. то, что пользователь непосредственно видит). Вот так, например, можно добавить напечатанный пользователем текст вComboBox:

ComboBox1->Items->Add(ComboBox1->Text);

Из полезных свойств отметим еще свойство style. Возможные значения для него -csDropDown(ComboBoxс возможностью редактирования),csDropDownList(ComboBoxбез возможности редактирования, т. е. пользователь может выбирать только из существующих элементов),csSimpleи другие. При значенииstyleравнымcsSimpleComboBoxбудет выглядеть приблизительно так:

Урок 14. Используем api-функции

В программах для WindowsнаC++Builder, как правило, всеAPI-функции можно использовать без особых проблем и без дополнительных объявлений иinclude'ов. Вот пример, как можно с помощьюAPI-функций сдвинуть кнопку Пуск на Панели задач:

void __fastcall TForm1::Button1Click(TObject *Sender)

{

HWND hWnd = FindWindow("Shell_TrayWnd", NULL);

HWND hWndBt = FindWindowEx(hWnd, NULL, "Button", NULL);

MoveWindow(hWndBt, 30, 2, 98, 32,TRUE);

}

Разумеется, этот код надо разместить в обработчике нажатия на кнопку на форме. После щелчка на кнопке нашей программы кнопка "Пуск" сдвинется вправо:

Если же вы разместите этот код в консольном приложении, то вам необходимо добавить include'ом файлwindows.h:

#include <windows.h>

int main(int argc, char* argv[])

{

HWND hWnd = FindWindow("Shell_TrayWnd", NULL);

HWND hWndBt = FindWindowEx(hWnd, NULL, "Button", NULL);

MoveWindow(hWndBt, 30, 2, 98, 32,TRUE);

return0;

}

Как правило, этого include'а достаточно для использования любойAPI-функции в консольном приложении.

Некоторые API-функции требуют вWindows-приложениях дополнительныхinclude'ов. Например, функцияPlaySound. Она без проблем будет работать в консольном приложении (если файлwindows.hподключен, разумеется), вWindowsже приложении нужно добавить строчку

...

#include<Mmsystem.h>

...

после чего в вашей программе вы сможете проигрывать с помощью этой функции звуки:

...

PlaySound("LOGOFF.WAV", NULL, SND_FILENAME);

...

Приведенный фрагмент проиграет файл LOGOFF.WAV, который вы должы разместить в папке вашего проекта.

То, что надо подсоединить именно файл Mmsystem.h, выясняем по встроенной справке по функцииPlaySound.