Listboxer список ошибок
Как я пришел в тестирование
Собственно, по просьбе моих теперь уже подписчиков.
Сразу скажу, что я не позиционирую нижеизложенный текст как некое пособие «как надо делать», скорее рассказ-пересказ того, что, как и почему делал я. Мой нынешний опыт в тестировании невелик и если кто-то из более опытных коллег как-то поправит меня или дополнит, то буду благодарен.
Итак, для начала отвечу на вопрос «почему«.
Еще в детстве, как и многие другие, я мечтал стать врачом. Со временем мечта эта поугасла и уступила место в моих планах более прибыльным профессиям, однако к 11 классу я вновь был преисполнен страсти к медицине. Вопреки воле семьи и преподавателей, я сдавал ЕГЭ по химии и биологии и, в конце концов, попал в медуниверситет.
Медицину я любил всем сердцем и с самого первого дня совершеннолетия начал работать. Сперва санитаром в больнице, потом на скорой помощи (выездная бригада, до сих пор вспоминаю с ностальгией)
После моего переезда в другой город я перевелся в другой мед.вуз, где и сдал экзамен по сестринскому делу, после чего поступил на работу медбратом в хирургическое отделение.
И вот тут мне открылись глаза на моё будущее.
Пока я жил с родителями, зарплата в 10 тыр казалась мне приятным бонусом к санитарской работе. Оскорбления пациентов забывались, когда мы приезжали на следующий вызов.
Тут, однако, все изменилось. Оказалось, что на те деньги, что получает медбрат снимать даже самую захудалую комнатушку, есть и покупать одежду одновременно не выходит. Неадекват, который на СП мне попадался относительно редко, в больнице всплыл вовсю — в больнице меня воспринимали как личного секретаря, дворецкого, уборщика, мальчика на побегушках, няньку. Не потому, что я прогибаюсь под людей или не умею постоять за себя — а просто потому, что пациенты (далеко не все, само собой, мне попадалось огромное количество благодарных, вежливых и просто адекватных пациентов) привыкли в таком качестве видеть медика. Я старался изо всех сил, всегда сводил конфликтные ситуации на «нет» и шел на встречу пациенту, входя в положение. Я уговаривал уставших старушек и мужиков с лицами алкашей на еще одну капельницу, контролировал, чтобы были съедены все таблетки, заправлял кровати. И понял, что взрослые люди, попадая в больницу, начинают капризничать и вести себя как дети.
Новости вокруг ужасали. «Там избили медика, там посадили врача, здесь сокращения» — в конце концов я начал опасаться за свое будущее. Мне, как и многим, хочется завести семью, хочется не думать о том, где бы добить копейку на еду, как на три тысячи одеть ребенка в школу и так далее. Мне хочется не опасаться за свое здоровье, социальную и юридическую защищенность. Мне хочется, чтобы мой труд оценивался достойно. Уже не говорю о том, насколько бесполезным мне казался мой труд — за два года, что я проработал медбратом, один пациент с алкогольным панкреатитом поступал к нам семь раз после обострений. Мы выхаживали его, давали рекомендации, советовали, уговаривали — однако каждый раз он снова бухал по праздникам, жрал жирное-жареное — и снова по кругу.
Я осознал, что больше не уговариваю никого на капельницы. Что мне стало безразлично, что станет с пациентами. И я сказал себе, что нужно менять свою жизнь — сейчас, пока есть возможность сделать это без особых проблем.
Теперь ответим на вопрос «как«.
К тому моменту у меня завязались серьезные отношения с девушкой, которая и по сей день рядом со мной. По стечению обстоятельств, она работает старшим тестировщиком в крупной компании. Собственно, именно она и подала мне идею пойти в QA — склад ума у меня подходящий, привычка искать изъяны осталась еще с медицины, компьютерная грамотность на хорошем уровне. При этом входной уровень в профессию тестировщика достаточно низкий (однако это не значит, что стать хорошим тестировщиком легко — это как с хорошими играми. Легко начать играть, но сложно постигнуть все нюансы.) На хорошем, однако не на профессиональном. И я приступил к самообразованию. Узнал, какими навыками следует обзавестись, составил — с помощью девушки, опять же — правильное резюме. В итоге я доработал до лета и уволился — параллельно начал отправлять резюме.
Первое собеседование было по договоренности — меня посоветовали посмотреть в некой компании. Само собой, собеседование я не прошел, однако мой интервьюер посоветовал меня для работы на сдельной основе — фриланса — в компанию, занимающуюся сайтопроизводством. Тут же, не отходя от кассы, меня прособеседовали еще раз и предложили выполнить для них работу по тестированию сайта.
Фрилансером я оставаться не хотел и параллельно продолжал рассылать резюме — пока, наконец, удача не улыбнулась мне. Меня в итоге взяли, однако хочу отметить, что глубокими знаниями я своих работодателей, конечно, не поразил — хотя и изучил на тот момент довольно много. Основную роль сыграл мой потенциал, умение анализировать, думать логически и некие личные качества. На тот момент мне было важно получить работу инженера-тестировщика в любой компании, что предложит мне работу, поэтому я нисколько не сомневался в своем ответе, когда мне прислали предложение. Спустя некоторое время я решил все же сменить место работы из-за некоторых определенных факторов, но до сих пор благодарен за полученные знания и опыт.
И, наверное, самое важное — «что я делал».
Здесь я постараюсь максимально тезисно перечислить набор знаний, умений и навыков, которые мне пришлось приобрести, а так же дам несколько советов.
1. Само собой, компьютерная грамотность. Тестировщик должен уметь установить программы, почистить ПК от мусора, знать, куда нужно нажать, чтобы Word все же сохранил документ перед закрытием.
2. Русский язык. Писать приходится много и крайне желательно, чтобы ваш текст потом могли прочитать коллеги.
3. Английский язык. Большинство профессиональной литературы на английском. Многие программы не локализованы. Да и вообще, знание языка никогда не лишне.
4. Что есть тестирование вообще, его виды — функциональное, регрессионное, etc.
5. Савин, «Тестирование дот ком». — первая книга, которую я прочитал по теме. Не Библия тестировщика, но дает представление о том, что и как придется делать.
6. Понимание работы сетей. Стек протоколов TCPIP. Что такое подсеть, что такое маска подсети, что есть IP-адрес, MAC-адрес, как работают всякие там прокси и NAT, какие бывают коды состояния HTTP. Как работает интернет, грубо говоря. Объемно, но интересно. Само собой, важнее тем тестировщикам, что работают с онлайн-продуктами, однако полезно всем.
7. Администрирование Win. Уметь настроить доменную сеть на 120 компов не нужно. Но вот посмотреть журналы windows, редактировать реестр, настроить брандмауэр уметь нужно.
8. Багтрекеры. Jira, youtrack, redmine, TFS. Функционал очень похож, так что если видел один, то разобраться сможешь во всех. Тем не менее, на собеседовании лучше иметь возможность сказать «читалсмотрел мануалы», чем «а что это?».
9. Анализаторы сетевого траффика. В моем случае — Wireshark. Выдает логи по всем пакетам, которые проходят через указанную сеть.
10. Программы для запуска виртуальных ОС — VirtualBox, vmware. Лучше так, чем ставить на рабочую машину несколько операционок.
11. Linux. Тут опционально. Много где требуется с разной степенью обязательности. Лучше знать — как минимум, как установить программу, как удалить, как получить права, как дать права, основные команды терминала.
12. SQL. Не обязательно знать его досконально, но уметь составлять хотя бы базовые запросы нужно.
13. Терпение, усидчивость, внимательность. Работа в тестировании — это не только веселое тыканье по всем кнопкам. Баг, вызванные стократным нажатием какой-нибудь кнопки гораздо бесполезнее бага, вызванного неликвидным символом в форме регистрации. Тестирование проводится по определенным алгоритмам, а работа фиксируется в соответствующей документации. Будьте готовы к тому, что писать придется много, зачастую — даже не увидев программыфункциональности. Будьте готовы к неадекватным требованиям и изменениям в них, о которых никого не известили.
В завершение текста хочу сказать: не бойтесь менять свою жизнь.
Прошу прощения за то, что пост получился слишком длинным.
Отзыв о работодателе «Veeam Software» Добавлен: 10.07.15 15:30
Положительные стороны компании
Крупная стабильная компания. Интересные и инновационные проекты. Персонал очень доброжелательный.
Отрицательные стороны компании
Ощущение потери времени.
Собеседование прошло отлично, вышла с заверениями, что я его прошла и теперь необходимо только дождаться письма от HR и записаться на финальное. Когда так и не дождавшись, позвонила сама, оказалось, мне отказали. Как-то это непрофессионально для крупной компании.
В вакансии на стажера почти нет требований, как говорится, стать тестировщиком может каждый, главное, чтобы «огонь в глазах и желание», на практике оказалось иначе.
Очень высокие технические требования, такие, что даже мои друзья-программисты, тестировщики ими не владеют. И это единственный фактор, по которому тебя отбирают. Ни решенные задачи, ни тестовые задания, а главное, тот самый «огонь»-значения не имеют. Хотя, казалось бы, знания можно и подтянуть, а вот логику мышления и талант к тестированию уже не выучишь.
Еще одним неприятным моментом было, когда получила стандартный ответ от HR, из которого стало ясно, что выполненное тестовое задание с сайта никто не смотрел, хотя потрачено на него было 2 дня. В этом уверена, т.к. если бы смотрели, ответ был бы другой.
Комментарии к отзыву
Мила, спасибо за Ваш отзыв.
Мы благодарны Вам за потраченное время.
Тестировщик — человек сложный, комплексный. «Огонь в глазах» способен компенсировать некоторые пробелы и недостатки, но далеко не все, как и в любой профессии. Мы всегда оцениваем кандидата комплексно и ищем в ребятах живой, гибкий ум, здравый смысл, четкую логику, любопытство, внимательность, желание и умение решать сложные интересные задачи и многое другое. Наши продукты велики по размеру и сложны настолько, что этот набор является для нас необходимым.
Наши технические требования не завышены — напротив, мы задаем базовые вопросы, которые должны быть знакомы каждому IT’шнику и инженеру. Простая математика и системы счисления, фундаментальные вопросы по операционным системам, сетям, базам данных и др. — то, на изучение чего специалист должен был потратить предыдущие 5-6 лет в институте. Если мы чувствуем в человеке потенциал, но видим, что ему не хватает сухих технических знаний, мы даем кандидату шанс подготовиться и вернуться к нам еще раз.
Можем заверить, что каждый кандидат всесторонне оценивается нашими ведущими людьми. Ваш отчет по тестированию программы Listboxer был рассмотрен начальником отдела тестирования сразу после получения и стал одним из важных факторов при принятии решения.
Нам жаль, что после встречи у Вас осталось ощущение потраченного времени. Если Вам это покажется интересным – мы можем организовать дополнительную встречу с нашими специалистами, на которой Вы обсудите Ваш потенциал в профессии, области развития, разберете сделанное Вами тестовое задание и получите ответы на интересующие вопросы.
Еще раз благодарим Вас за то, что уделили нам время, и желаем удачи в дальнейшем!
Инженер-тестировщик (Playkot, Санкт-Петербург)
UPD 12.09.2017: ВАКАНСИЯ ОТКРЫТА
Сегодня Плэйкот — это 8 лет истории, 97 профессионалов и 3 игры в Top Grossing Фейсбука. Наш подход к работе прост: мы даем талантливым, увлеченным играми и ценящим качество людям возможность принимать решения самостоятельно. Многим трудно поверить, но у нас слово команды в том, что и как делать в игре, действительно является решающим.
Сейчас мы ищем QA-инженера, главной целью которого станет обеспечение безупречного качества проекта «Age of Magic», который уже этой зимой выйдет в глобальный релиз. Вы будете находить, описывать и воспроизводить баги. Находить и воспроизводить. Находить и воспроизводить.
Что мы вам доверим:
— анализ проектной документации и разработку тест-планов и тест-кейсов;
— ручное функциональное тестирование игрового приложения;
— внесение обнаруженных ошибок в баг-трекер, контроль их исправления;
— составление отчетов о проведенном тестировании.
Чеклист нужных навыков и опыта:
Врожденные:
— аналитический склад ума;
— аккуратность и усидчивость, ответственность и пунктуальность;
— общая техническая грамотность;
— любовь к качественному продукту и отсутствию ошибок;
— желание работать в игровой индустрии.
Приобретенные:
— опыт работы на позиции инженера-тестировщика от двух лет;
— знание и успешный опыт применения различных методик тестирования;
— близкое знакомство с системами баг-трекинга;
— прокачанные навыки составления тестовой документации.
Также придутся очень кстати:
— опыт тестирования мобильных приложений;
— опыт автоматизации тестирования;
— навыки программирования;
— высшее техническое образование в сфере ИТ;
— опыт работы с Unity.
Лучшее, что у нас есть:
— возможность сделать реальный вклад в создание мирового хита;
— коллеги, которые регулярно превосходят ваши ожидания;
— легкость в принятии решений — мы против бюрократии;
— команда профессионалов, готовых помогать и делиться магическим знанием;
— открытая статистика, в том числе и по заработкам наших игр;
— у нас ценится крутизна. Те, кто делают круто — наши герои;
— мы — не конвейер по производству игр. Здесь люди важнее процессов.
Приятные мелочи:
— белую зарплату по итогам собеседования и оформление по всем правилам;
— один из лучших офисов Петербурга: расположенный недалеко от метро, просторный и светлый, с большим количеством зелени и панорамой крыш за окном;
— кофе, чтобы проснуться по утрам, орешки, чтобы подзарядиться энергией, и заботу нашего офис-менеджера круглый год.
Работа только в офисе в Санкт-Петербурге, в шаговой доступности от ст.м. «Горьковская», «Петроградская», «Чкаловская».
Удаленную работу не предлагаем. Рассматриваем соискателей из других городов и стран, готовых к переезду.
При получении вашего резюме вам может быть предложено тестовое задание.
Откликаться сюда: или в комментариях ниже. Спасибо!
Примеры использования элемента управления ListBox
Ранее я рассмотрел методы создания пользовательских форм и основы работы с ними (если вы никогда не работали с пользовательскими формами, рекомендую для начала прочитать указанную заметку). Далее привел целый ряд практически полезных примеров пользовательских диалоговых окон. В настоящей заметке подробнее рассказывается об использовании элемента управления ListBox.[1]
Рис. 1. Установка свойства RowSource на этапе разработки
Скачать заметку в формате Word или pdf, примеры в архиве
Элемент управления ListBox довольно гибкий в использовании, но работа с ним может оказаться достаточно сложной. В большинстве случаев методы, описанные здесь, могут применяться и для работы с элементом управления ComboBox.
При работе с элементом управления ListBox следует учитывать, что:
- Опции списка элемента управления ListBox могут извлекаться из диапазона ячеек (определяемого свойством RowSource) или добавляться с помощью VBA (для этого используется метод Addltem).
- Элемент управления ListBox может быть применен для выделения одной или нескольких опций. Соответствующее поведение определяется значением свойства MultiSelect.
- Если элемент управления ListBox не настроен на выделение нескольких опций, то значение элемента управления ListBox может связываться с ячейкой листа с помощью свойства ControlSource.
- Элемент управления ListBox может отображаться без предварительно выбранной опции (для этого необходимо установить свойство Listlndex равным –1). Но как только пользователь выделит одну из опций списка, отменить выделение будет невозможно. Исключение из этого правила— значение свойства MultiSelect равно True.
- Элемент управления ListBox может содержать несколько столбцов (что указывается в свойстве ColumnCount) и даже описательные заголовки (для этого используется свойство ColumnHeads).
- Вертикальный размер элемента управления ListBox, помещенного в пользовательское диалоговое окно, не всегда совпадает с вертикальным размером объекта UserForm на экране.
- Опции списка элемента управления ListBox могут отображаться в виде флажков, если разрешено выделение нескольких элементов, или в виде переключателей, если поддерживается только единичное выделение. Это поведение определяется значением свойства ListStyle.
Добавление опций в элемент управления ListBox
Перед отображением пользовательского диалогового окна, которое содержит элемент управления ListBox, следует заполнить элемент управления ListBox необходимыми опциями. Элемент управления ListBox заполняется на этапе разработки проекта посредством указания диапазона ячеек, которые содержат необходимые данные. Его также можно заполнить на этапе выполнения, воспользовавшись кодом VBA для добавления всех опций списка.
В двух примерах этого раздела предполагается следующее:
- используется диалоговое окно UserForm с именем UserForm1;
- диалоговое окно UserForm1 содержит элемент управления ListBox, который называется ListBox1;
- рабочая книга содержит лист Лист1, в диапазоне А1:А12 которого определены опции, отображаемые в элементе управления ListBox.
Добавление опций в элемент управления ListBox на этапе разработки
Для добавления опций в элемент управления ListBox на этапе разработки необходимо, чтобы они хранились в диапазоне ячеек рабочей книги. Воспользуйтесь свойством RowSource для указания диапазона, который содержит опции элемента управления ListBox. На рис. 1 показано окно Properties для элемента управления ListBox (см. также файл listbox fill.xlsm) Свойство RowSource установлено равным Лист1!А1: А12. Когда диалоговое окно UserForm отображается на экране, элемент управления ListBox содержит двенадцать опций из этого диапазона. Опции добавляются в элемент управления ListBox на этапе разработки, сразу после того, как диапазон определяется в качестве значения свойства RowSource.
Удостоверьтесь, что в значении свойства RowSource присутствует имя листа. В противном случае элемент управления ListBox будет применять указанный диапазон в активном рабочем листе. Иногда следует идентифицировать диапазон максимально точно, указав даже имя рабочей книги. Лучше всего сначала определить имя для диапазона, а затем включить его в состав разработанного кода. Это гарантирует использование требуемого диапазона, даже если были добавлены или удалены строки, не входящие в диапазон.
Добавление опций в элемент управления ListBox на этапе выполнения
Чтобы добавить опции элемента управления ListBox на этапе выполнения, необходимо:
- с помощью кода определить значение свойства RowSource, чтобы указать диапазон, хранящий необходимые данные;
- создать код, использующий метод Addltem для добавления опций в элемент управления ListBox.
Следующая процедура устанавливает значения свойства RowSource элемента управления ListBox перед тем, как отображается диалоговое окно UserForm. В этом случае опции состоят из значений в ячейках диапазона Categories рабочего листа Budget:
UserForml.ListBoxl.RowSource = » Budget!Categories »
UserForml.Show
Если опции элемента управления ListBox не содержатся в диапазоне ячеек листа, то можно создать специальный код VBA для заполнения элемента управления ListBox перед кодом отображения диалогового окна. Следующая процедура заполняет окно списка элемента управления ListBox названиями месяцев года с помощью метода Addltem:
учимся
программировать
Программированию нельзя научить, можно только научится
Главная » Уроки по ООП » Урок 11. Компоненты для работы со списками
Урок 11. Компоненты для работы со списками
Компоненты ListBox и ComboBox отображают списки строк.
ListBox
Только отображает данные и позволяет пользователю выбрать из них то, что ему надо.
ListBox отображает список в раскрытом виде и автоматически добавляет в список полосы прокрутки, если все строки не помещаются в окне компонента.
Множественный выбор в компоненте ListBox
В компоненте ListBox имеется свойство MultiSelect, разрешающее пользователю множественный выбор в списке (на рис. это свойство установлено в true в среднем верхнем списке).
Если MultiSelect=false, то пользователь может выбрать только один элемент списка.
Свойство ItemIndex — индекс выбранной строки. Если ни одна строка не выбрана, то ItemIndex = -1. По умолчанию ItemIndex = -1. Это означает, что ни один элемент списка не выбран.
Если допускается множественный выбор, то значение ItemIndex соответствует тому элементу списка, который находится в фокусе. При множественном выборе проверить, выбран ли данный элемент, можно проверив свойство Selected[Index:Integer] типа Boolean.
Если ExtendedSelect=true, то пользователь может выделить интервал элементов, выделив один из них, затем нажав клавишу Shift и переведя курсор к другому элементу. Выделить не прилегающие друг к другу элементы пользователь может, если будет удерживать во время выбора нажатой клавишу Ctrl.
Если же ExtendedSelect=false, то клавиши Shift и Ctrl при выборе не работают.
Свойство Columns определяет число столбцов, в которых будет отображаться список, если он не помещается целиком в окне компонента ListBox.
ComboBox
не только отображает данные но и позволяет их редактировать.
ComboBox позволяет отображать список как в развернутом виде, так и в виде выпадающего списка, что обычно удобнее, так как экономит площадь окна приложения.
Стиль изображения этого компонента определяется свойством Style, которое может принимать следующие значения:
- csDropDown — выпадающий список с окном редактирования, позволяющим пользователю вводить или редактировать текст.
- csSimple — развернутый список с окном редактирования, позволяющим пользователю вводить или редактировать текст.
- csDropDownList — выпадающий список, не содержащий окна редактирования.
Выбор пользователя или введенный им текст можно определить по значению свойства Text.
Если же надо определить индекс выбранного пользователем элемента списка, то можно воспользоваться свойством ItemIndex.
Если в окне проводилось редактирование данных, то ItemIndex = -1. По этому признаку можно определить, что редактирование проводилось.
Общие свойства
Основное свойство обоих компонентов, содержащее список строк, — Items, имеющее тип TStrings. Заполнить его во время проектирования можно, нажав кнопку с многоточием около этого свойства в окне Инспектора Объектов. Во время выполнения работать с этим свойством можно, пользуясь свойствами и методами класса TStrings — Clear, Add и другими.
Сортировка списка
Свойство Sorted позволяет упорядочить список по алфавиту. При Sorted=true новые строки в список добавляются не в конец, а по алфавиту.
Свойство Style, установленное в lbStandard (значение по умолчанию) соответствует списку строк. Другие значения Style позволяют отображать в списке не только текст, но и изображения.
Список с индикаторами CheckListBox.
Выглядит он так же, как ListBox, но около каждой строки имеется индикатор, который пользователь может переключать. Индикаторы можно переключать и программно, если список используется для вывода данных и необходимо в нем отметить какую-то характеристику каждого объекта, например, наличие товара данного наименования на складе.
Все свойства, характеризующие компонент CheckListBox как список, аналогичны ListBox, за исключением свойств, определяющих множественный выбор. Эти свойства компоненту CheckListBox не нужны, поскольку в нем множественный выбор можно осуществлять установкой индикаторов.
Состояния индикаторов определяют два свойства: State и Checked. Оба эти свойства можно рассматривать как индексированные массивы, каждый элемент которого соответствует индексу строки. Эти свойства можно устанавливать программно или читать, определяя установки пользователя. Например, операторы
CheckListBox1.Checked[1]:= true;
CheckListBox1.State[2]:= cbGrayed;
устанавливают индикатор второй строки списка CheckListBox1 в состояние выбранного, а индикатор третьей строки — в промежуточное состояние (вспомним, что индексы начинаются с 0). Оператор
for i:=0 to CheckListBox1.Items.Count — 1 do
if CheckListBox1.Checked[i] then .
проверяет состояние всех индикаторов списка, и для выбранных пользователем строк осуществляет какие-то действия (в приведенном операторе на месте этих действий просто поставлено многоточие).
В компоненте CheckListBox имеется также событие OnClickCheck, возникающее при каждом изменении пользователем состояния индикатора. Его можно использовать для обработки результатов изменения.
Задание 1
Рассмотреть свойства компонентов ListBox, ComboBox и CheckListBox, создав следующую форму.
Задание 2.
Установить на форму компоненты ListBox и ComboBox, два компонента Edit и кнопку. По нажатию на кнопку текст из первого Edit добавляется в список ListBox, а текст из второго Edit добавляется в список ComboBox.
Задание 3.
В предыдущем задании сделать так, чтобы текст, введенный в ComboBox по нажатию на кнопку добавлялся к нему в список.
Задачи для самостоятельного выполнения
Список группы. Составить программу, которая по нажатию на кнопку «Добавить в список» добавляет в список ListBox фамилию и имя, указанные в соответствующих Edit. Нажатие на кнопку «Удалить из списка» должно удалять из ListBox
Ход работы:
Расположите компоненты на форме (рис.1).
Рисунок 1.
В обработчик кнопки «Добавить с список» занесите следующий код:
ListBox1.Items.Add(Edit1.Text+’ ‘+Edit2.Text);
Edit1.SetFocus;
В обработчик кнопки «Удалить из списка»:
ListBox1.Items.Delete(ListBox1.ItemIndex);
В обработчик кнопки «Очистить список»:
ListBox1.Items.Clear;
Запустите программу и создайте список из нескольких человек. Проверьте кнопки «Удаление из списка», «Очистить список».
Справочник цветов. Создать программу, которая позволяет из списка ListBox выбирать название цвета. В результате выбора на экране должно появляться название цвета в формате RGB. Примерный вид запущенного приложения показан на рисунке 2.
Рисунок 2.
Выбор подарка. После запуска программы пользователь может сформировать список подарков для друзей. Выбирать подарки можно из списка «Подарки», после выбора подарка он отображается во втором списке «Выбранные подарки». С помощью кнопки «Добавить» можно добавить название подарка, которого нет в списке «Подарки», а с помощью кнопки «Удалить» — удалить выделенный подарок из списка «Выбранные подарки». Для отображения списков использовать компоненты ListBox. Добавить возможность сохранения списков в текстовый файл и предусмотреть загрузку из него, для чего использовать методы
ComboBox1.Items.SaveToFile(‘1.txt’) и ComboBox1.Items.LoadFromFile(‘1.txt’).
Тест по программированию. Составить программу, проверяющую знания основные операторов. Выбрав в списке «Оператор» (ListBox1) значение, далее пользователь должен выбрать его название во втором списке (ListBox2). Если выбрано правильное название, то выводится сообщение «Правильно», если неправильное, то – «Ошибка».
При правильном выборе название оператора должно удаляться в левом списке. Правильные названия должны искаться до тех пор, пока не будет получено соответствие всех операторов и их названий.
Рисунок 1
Словарь. Разработать программу для составления словаря новых терминов. Должна иметься возможность внесения в словарь изменений, дополнения или сокращения его. При выборе термина на контрольной панели должны появляться его номер и общее количество слов в словаре. Добавить возможность сохранения составленного списка терминов в текстовый файл и предусмотреть загрузку из него, для чего использовать методы
ComboBox1.Items.SaveToFile(‘1.txt’) //сохранение в файл
ComboBox1.Items.LoadFromFile(‘1.txt’) // загрузка из файла
Добавить также возможность регулировать доступ к редактированию словаря, при помощи компонента CheckBox (назвав его, например, «Только чтение»). Для изменения доступа использовать свойство Style компонента ListBox.
Проект «Стоимость заказа». Создайте программу, подсчитывающую стоимость заказа (рис.2). Результат подсчета должен выводится на Panel.
Подсказка: в обработчике события onClick компонента CheckListBox необходимо проверять все строки. Если строка выделена (стоит галочка), то нужно к общей стоимости прибавлять соответствующую сумму из ListBox. Для пробега по строкам использовать цикл For.