Урок 40 Создание телефонного справочника
May 20, 2007
в колонках играет DDT - Метель
Сначала небольшое предисловие. Начиная с мая я буду публиковать не только собственные уроки, но истатьи "рядовых пользователей" хелпера. Это не только позволит нам всем обмениваться опытом друг с другом, но также я смогу уделять больше времени разработке следущей версии.
Эту и 2 следущих статьи подготовил maks, еще 3 написал medneem. Надеюсь, что другие пользователи тоже в скором времени подготовят свои материалы.
Сегодня мы будим использовать то, чему научились в прошлых уроках. А именно: я расскажу, как создать относительно простой телефонный справочник.
Итак, приступим к делу:
Кидаем на форму:
1) Button1 и Button2
2)ListBox1, ListBox2 и ListBox3
3)Label1 и Label2
4)MainMenu1
5)PopupMenu1
6)Edit1 и Edit2
(Надеюсь после стольких уроков вы всё найдете сами)
для начала подключите библиотеку #include <mmsystem.h> после #include <vcl.h>, иначе у вас ничго не получится.
Двойным щелчком по MainMenu1 и делаем так как сказанно в 4-м уроке. Нужно добиться такого результата:
| сохранить номера| загрузить номера| экстра | выход | о программе|
В "экстра" заполняем:
| Смена пользователя |
| Вызвать диспетчер задач |
| Об оперативной памяти |
| Открыть CD-ROM |
| Закрыть CD-ROM |
| Узнать дату и время |
Наверху формы нажимаем на "сохранить номера " и пишем код:
ListBox1->Items->SaveToFile("c:\\Program Files\\1.txt");// тем самым текст из ListBox1 будет сохраняться в директории "c:\\Program Files\\1.txt"
ListBox2->Items->SaveToFile("c:\\Program Files\\2.txt");// тем самым текст из ListBox2 будет сохраняться в директории "c:\\Program Files\\2.txt"
Затем на "ЗАГРУЗИТЬ НОМЕРА":
ListBox1->Items->LoadFromFile("c:\\Program Files\\1.txt");// тем самым текст из директории "c:\\Program Files\\1.txt" будет загружаться в ListBox1
ListBox2->Items->LoadFromFile("c:\\Program Files\\2.txt");// тем самым текст из директории "c:\\Program Files\\2.txt" будет загружаться в ListBox2
"Смена пользователя":
ExitWindowsEx(EWX_LOGOFF, 0);// сможете сменить свою учетную запись если она у вас конечно же есть
"Вызвать диспетчер задач":
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_TASKLIST, -1);//Вы сможете вызвать диспетчер задач
ЭКСТРА -> "Об оперативной памяти":
MEMORYSTATUS mem;
memset((void*)&mem,0,sizeof(mem));
mem.dwLength=sizeof(mem);
GlobalMemoryStatus(&mem);
MessageDlg("Total memory:"+IntToStr(mem.dwTotalPhys),
mtInformation, TMsgDlgButtons() << mbOK, 0);//Узнать расход и остатьк оперативной памяти
"Открыть CD-ROM":
mciSendString("Set cdaudio door open wait", NULL, 0, Handle);
"Закрыть CD-ROM":
mciSendString("Set cdaudio door closed wait", NULL, 0, Handle);
"Узнать дату и время":
AnsiString day, month, year, hour, min, sec;
day = FormatDateTime("dd", Now());
month = FormatDateTime("mm", Now());
year = FormatDateTime("yyyy", Now());
hour = FormatDateTime("hh", Now());
min = FormatDateTime("mm", Now());
sec = FormatDateTime("ss", Now());
ShowMessage(day+" - День месяца\n"+month+" - Месяц\n"+year+" - Год\n"+hour+" - Часы\n"+min+" - Минуты\n"+sec+" - Секунды");
"ВЫХОД":
Application->Terminate();//Убиваем процесс
"О Программе":
ShowMessage("Программа была создана Василием Пупкиным!!!");
Теперь мы разобрались с MainMenu1, осталось дело за малым: сделать так, чтобы текст из Edit1 добавлялся в ListBox1 и из Edit2 в ListBox2, к нам придет на помощь урок №3:
В Caption у Button1 пишем "ОК" и в OnClick у Button1 пишем:
ListBox1->Items->Add(Edit1->Text);//Текст из Edit1 будет добавляться в ListBox1
ListBox2->Items->Add(Edit2->Text);//Текст из Edit2 будет добавляться в ListBox2
Далее Button2, в Caption у Button2 пишем "Очистить" и в OnClick у Button2 пишем:
Edit1->Clear();//Текст в Edit1 будет очишен
Edit2->Clear();
В ListBox3 (В обработчике событий Items->Strings) Напишите числа от 1 и до того сколько вам нужно.
Разместите Label1 и Label2 над ListBox1 и ListBox2 как показанно на рисунке и подпишите в Label1->Caption="Имя и фамилия" и Label2->Caption="Номер телефона"
Ах да, и еще одно: Чтобы вы не путали записи при просмотре, в OnClick у ListBox1 пропишите:
ListBox2->ItemIndex=ListBox1->ItemIndex;
ListBox3->ItemIndex=ListBox1->ItemIndex;
И тоже тоже самое повторите для ListBox2 и ListBox3.
Жмем магический F9 и смотрим что получилось
Author of article - Maks 2007
www.builderhelper.org
builder.helper@rambler.ru