Реферат: Разработка игровой программы "Морской бой"

«ИГРА — вид непродуктивной деятельности, мотив которой заключается нев ее результатах, а в самом процессе. В истории человеческого обществапереплеталась с магией, культовым поведением и др.… Свойственна также высшимживотным».

Советскийэнциклопедический словарь

ВВЕДЕНИЕ

Все, кто имеет дело с компьютером,так или иначе сталкивались  с  компьютерными играми,   и  подавляющее большинство может сходу назватьнесколько игр, которые им особенно понравились. Те, кто уже совсем наигрался,почти наигрался или еше не наигрался, но в процессе общения с компьютером уже начал совмещать игры с чем-нибудь более полезным, возможно,хотели бы придумать какие-нибудь свои, не похожие ни на какие другие игры (1).

<span Times New Roman",«serif»;color:windowtext;mso-ansi-language:RU">Многоезахватывает в таком творчестве. И не сам процесс игры, а разработка игровойвселенной, ее проектирование и реализация. Когда можно слить воедино сценарий,графику, музыку, искусно задуманный и умело запрограммированный алгоритм —создать единый фантастический мир, живущий по законам, которые ты же для него ипридумал.

В данной курсовой работе речь пойдето создании несложной игровой программы «Морской бой», которая и будет являтьсяобъектом исследования.

В первой главе данной курсовой работырассматриваются аспекты программирования игр с использованием визуальныхкомпонентов, в пункте 1.1. приводится аналитический обзор игрового программногообеспечения, классификация игр. В пункте 1.2. приводится описание компонентов,используемых при реализации практической части курсовой работы. В пункте 1.3.показываются возможности использования визуальных компонентов.

Во второй главе приведены этапыразработки программы, такие как постановка задачи, алгоритм реализации иописание пользовательского интерфейса.

В заключении приведенывыводы по курсовой работе, достоинства и недостатки визуальных методовпрограммирования.

Список использованныхисточников содержит полный перечень технической литературы, использованной длянаписания данной курсовой работы.

Приложения содержатблок-схемы всех процедур программы, и текст самой программы.

1. ПРОГРАММИРОВАНИЕ ИГРС ИСПОЛЬЗОВАНИЕМ ВИЗУАЛЬНЫХ КОМПОНЕНТОВ

1.1.<span Times New Roman"">        

Аналитический обзор

В последнее время продажипрограммного обеспечения увеличиваются незначительно, в то время как продажиигровых программ возрастают экспоненциально. Игры для платформы Windowsсоставляют подавляющее большинство.Игровое программное обеспечение – это третья по размерам доходов отрасльиндустрии программного обеспечения после текстовых процессоров и электронныхтаблиц (1).

До недавнего времени среда Windowsиспользова­лась в основном как платформа для создания игр, пер­воначальноразработанных для Macintosh. Это осуще­ствлялось набазе пакета QuickTime фирмы Apple. При­мерами такихигр могут быть Mysl (Broderbund/Cyan),Wrath of the Gods (Maxis/Luminaria) и некоторыедру­гие. В ряде случаев использовался пакет Video for Win­dows, позволяющийотображать оцифрованное видео. Затем появились библиотеки WinG и WinToon, на базекоторых фирма Sierra создала игру King's QuestVII. Это были первые попытки использовать Windows как платформу длясоздания игровых программ. Преимущест­ва такого подхода достаточно очевидны— единый ин­терфейс, наличие стандартныхдрайверов для большин­ства мультимедийных устройстви возможность управ­ления ими стандартными способами. Затем появилась новаяверсия— Windows95, в состав которой была включена библиотекаWinG (как подсистема GDI), и передразработчиками открылись более широкие воз­можности.

Указать точное число компьютерных игрочень трудно. Можно только примерно оценить число различных наименований игр,находящихся на рынке в любое время (2).

Классификация компьютерных игр можетбыть следующая:

1. Приключенческие игры.Игрымогут быть великолепнымсредством рассказа истории. Эти игры представляют собой мультиплицированный рассказ, в котором можно видеть иконтролировать основной персонаж (а иногда и болееодного) в очень детальном повествовании. Это-компьютерные версии обычных повествований, начиная от душещипательных рассказов до технотриллеров,научно-фантастических приключений, фантазий и рассказов, до предела набитыхразными обманами и мошенничествами. Приключенческие игры развиваются вокругразличных загадок и препятствий, которые нужно преодолеть по мере развитиярассказа.

2. Фантастические игры, вкоторых требуется играть некоторую роль (ролевые игры).Их лучше всего определить каккомпьютеризованную версию рассказа Dungeons andDrag­ons («Подземелья и драконы»), но действие не всегдапроисходит в населенном варварами средневековом мире. Часто оно происходит воткрытом космосе или в каких-либо областях будущего. В этих играх обычно нужноуправлять группой персонажей, которые становятся по мере развития игры сильнееи умнее, и делать некоторые другие вещи. Так же изменяются и враги. Самирассказы в играх этого типа обычно менее детальны, чем в приключенческих играх,с большим упором на задачу побить чудовгщ, чемрешить загадки.

3. Имитаторы воздушных икосмических сражений.Это не воен­ные игры, в которых может оказаться неограниченное число вооруженийи врагов, эти игры пытаются быть точнымиимитаторами полетов и сражений на реальных боевыхсамолетах. Эти игры предназначены для тех, ктохочет ле­тать на больших и очень мощных машинах. Кабины пилотов выглядят какнастоящие, инструменты работают как в насто­ящем бою, оружие является имитацией реальносуществую­щего, а полетные характеристики самолета (и самолета врага)соответствуют действительным. Имитаторы космических сражений выдуманы, однакоони разработаны с целью точно повторить реальные маневры в космосе.

4. Имитаторы наземных иморских сражений.Игры разработаны для военного оборудования и военныхмашин. Эта категория игр включает в себя симуляторынастоящих подводных ло­док, кораблей и танков, и позволяет игрокам испытатьреальные сценарии сражений, и выжить для того, чтобы понять, как использовать правильную тактику вследующей игре.

5. Самолеты, поезда иавтомобили.Вотличие от этих имитаторов, все прочие являются имитаторамивоенного типа или имеют очень сильный упор насражение. Эти же игры не относятся к таким имитаторам. Конечно, можно проехать наавтомобиле по береговой дороге в Калифорнии со скоростью, вдвое превышающей разрешенную, и потанце­вать на всех четырех колесах. Нотакже можно использо­вать эти игры, чтобы научиться безопасно летать среди об­лаков,и получать удовольствие от свободы полета. Дажеможно делать такие вещи, как постройка и управление со­бственной железнойдорогой.

6. Спортивные имитаторы. Здесьнеобходимо обучать профессионалов и управлять ими. Эти игры- нечто боль­шее, чем простое изображениебейсбольных игр в картинках, в некоторых из них можно даже контролироватьреальное действие. Спортивные имитаторы дают возможность вести рискованную игрув нужное время, доказать, что можно выиграть с помощью быстроты, иметь в командеГенри Аарона и Теда Вильямса,или переиграть Томми Лазорду.

7. Аркадныеигры/игры действия.Это классические «игры дей­ствия»- все зависит от того, насколько быстро рукимогут дергать джойстик. Обычно о них говорят как о бес­смысленных, так часто ибывает. С другой стороны, бывают времена, когда появится потребность датьотдохнуть мозгам. Во многие из этих игр можно играть с помощьюклавиатуры или мыши, и джойстики не всегда необходимы. В чем естьнеобходимость, так это в быстрых рефлексах.

8. Настольные игры, солитер и салонные игры.Многие старые любимые игры появились в компьютерномварианте. Больше не нужно заниматься поисками партнера, чтобы поиграть вшахматы, бэкграммон и риск. Некоторые из этих игр даже научат мошенничать наедине смонитором, и при этом не придется возвращатьсядомой с пустым карманом после неудачной ночи.

9. Имитаторы реальности («игрыв бога»).Это игры, которые позволяют создавать реальный мир из ничего. Это игры,которые позволят создать компьютерный мир из на­бросков, управлять городом,страной или даже миром.

10. Игры, в которых делаются деньги.Они копируют игровую деятельность иучат высшим формам азартных предприятий: фондовая биржа, торговлянедвижимостью. Они также поз­волят попробовать управлять корпорацией. В этиигры можно играть для удовольствия, или использовать их для того, чтобы научиться карабкаться вверхпо лестнице карьеры.

11. Стратегические и военные имитаторы.Здесь можно принимать участие в великихисторических событиях, взять на себя командо­вание немецкой армией у Ленинградаили армией Наполео­на у Ватерлоо. Это военные стратегиипрошлого, насто­ящего или будущего.

12. Игры для детей.Если есть домашний компьютер, и чтобыдети научились его использовать, то эти игры достой­нывнимания. Реальность нашей культуры такова, что, как только малыши стануткоординированы настолько, чтобы правильно пользоваться клавиатурой или мышью,они хотят сразу приняться за такие игры, как WingCommander, Popu­lous или Eye of the Beholder.Однако же вокруг существует множество игр, в которые дети могут играть просточтобы получить удовольствие, или же научиться чему-либо.

13. Игры «On-line».Было быошибкой считать, что все компь­ютерные игры для IBMPC приходят к нам на дискетах или CD-дисках, плотноупакованных в красивые пакеты. Фактически, весь обшир­ный мир компьютерныхигр доступен и по телефону. Эта категория игр известнакак «он-лайн» и включает в себя разнообразные игры, которые имеются в больших коммер­ческих «он-лайн» сетях и во многих локальных сетях типа«доска объявлений» (bulletin board system—BBS). Для игр«он-лайн», кроме личного компьютера,необходимы модем и кредитная карточка.

14. Игры Shareware.Будет ошибкой предположить, что все компь­ютерные игрыприходят в красивых упаковках. Многие хоро­шие игры приходят вовсе без упаковок, истоят от10 до30 долларов. Обычно можно их опробовать заочень низкую плату или вовсебесплатно в течение нескольких дней и, если захочется получить легальную копию, следует послать по почте чек компании или лицу, которые создали игру.

15. Классические игры.МирPC-игр во многом похож на мир популярноймузыки и фильмов: создается много игр различ­ныхнаименований, некоторые становятся хитами и держатпопулярность в течение некоторого времени, другие пропа­дают. Постепенно этихиты становится трудно отыскать, и мало-помалу онизаменяются другими лучшими играми. Очень малоPC-игр живут более2-3 лет. Изтех, что действительно остаются, многие настолько хороши, что становятся вечны­ми, и они заслуживают того, чтобы в нихиграли. Некоторые, как Flight Simulator или King's Quest, обновляются время отвремени, так что их можно рассматривать как практически новые игры. Остальныеостаются неизменными, и уровень продаж у них таков,что они остаются в обращении, но уже не рекламируются активно ихпроизводителями. Это игры, которые не бросаются в глаза, «золотые» игры— классичес­киеPC-игры.

Компьютерныеигры— отнюдь не новое изобретение. Ихистория началась не с конца1970 годов.Начало лежит гораздораньше, тогда, когда Джон Кеннеди уже пробыл президентомСоединенных Штатов всего несколько месяцев (2).

На самомделе все началось с модели железной дороги. Студен­ты Технологическогоинститута в Массачусетсе были немало удивле­ны количеством способов, с помощью которых можно было размес­тить органы управления миниатюрной железной дорогой. Позднее, когда они наконец получиливозможность работать на больших компь­ютерах института, их работа в бинарныхвычислениях— ведь именно такиевычисления имитируются выключателями железнойдороги— позволили им пройти хорошуюподготовку в компьютерном деле.

Стив Рассел был одним из членовКлуба Моделей Железных дорог Высокой Технологии вТехнологическом институте. Будучи хорошим программистом, он летом1961 года работал в Статистическойлаборатории, когда у него и его друзей появиласьидея перенести «мыльные» научно-фантастические рассказыЕ.Е.Смита на компьютеры. В1962 году Стив разработал программу для PDP-1. Эта самая машинатеперь выставлена в компьютерном музее Бостона в Массачусетском Технологическом институте.

В «Космической Войне», как называласьэта программа, два синтезированных компьютеромракетных космических корабля (один похожий на толстую сигару, а другой надлинную обтекаемую трубу) могли летать по экрану, на котором помещалосьизображение кос­моса. Игроки могли нажимать на кнопки, чтобы заставить ракетыменять направление движения почти так же, как позднее в игре Asteroidsвладельцы игровых машин Atari управляли своими корабля­ми. Каждая ракета неслана себе31 торпеду,и, в то время как они летели по экрану, игрок мог выстрелить точечку из носа своей ракеты в направлении другой. Если точкадействительно пересекала очерта­ния другого корабля, программа определяла, что торпеда успешно поразиладругой корабль и другой корабль «взрывался». Взорванный корабль пропадал сэкрана и заменялся нагромождением точек, ко­торыеизображали его остатки.

Конечно, общество программистов ивзломщиков программ не может удовлетвориться качеством любой программы, независимо от того, насколько она легка или интересна.Изменения были неизбеж­ны. Один из друзей программиста, будучи недовольным случайнымобразом построенной картой звездного неба, которую Рассел первоначальнопоместил в игру, взял звездный атлас и ухитрился запрограммироватьнашу собственную галактику, вплоть до звезд пятой величины. Другой добавил гравитацию вигру, а третий ввел возможность побега в гиперпространство, при этом, чтобы показать место, где корабль покинул звездную систему, на экране оставался след ускорения.

Даже Рассел сделалнекоторые изменения. Зная, что у настоя­щих торпедвероятность поражения цели не100%, аменьше, он решил придать звездным торпедам возможностьошибки, и добавить случайный элемент в траекторииракет и время взрыва. Его друзья терпеть не моглиновую версию, поскольку они хотели бы иметь в игре ту же степень уверенности,которая существовала в программировании.

Рассел вернул программу к прежнейверсии и, не успели огля­нуться, как «Космические войны» оккупироваликомпьютеры коллед­жей по всей стране.

«Космические войны» стали настолькопопулярны к середине шестидесятых, что Нолан Бушнелл, создатель Atari, очень привязался к игре вовремя учебы в университете штата Юты. К1970годуБушнелл построил свою собственную машину,использовав185 встроенныхцепей для подсоединения к телевизоруи для выполнения одной-единственной функции. Этафункция была игрой «Компьютерный Космос», вариант«Космических Войн», в котором ракета сражалась с летающими тарелками вместодругого корабля.

«Космические Войны» были не единственным предшественником коммерческих компьютерных игр, появившихся набольших компьютерах в колледжах. Какой-то неизвестный автор начал играть в игруStar Trek («Звездный путь») в шестидесятых годах.Никто не знает, кто первым создал такую игру — он или она, вероятно, подали бысудебный иск, если бы автор игры был точно определен— но эта игра также появилась на колледжскихкомпьютерах по всей стране к 1969 году.

Игра «Звездный путь» сама по себебыла не очень изощренной. В игре были линиинаподобие решеток, которые позволяли звезд­ным кораблям путешествовать от однойточки к другой, игра исполь­зовала символы дляидентификации кораблей, предоставляла чис­леннуюинформацию в процентах, и позволяла летать быстрее, чем скорость света. Ксередине 70-х годов почти на каждой домашней компьютернойсистеме была доступна та или иная форма этой игры. Существовала версия этой жеигры для IBM под названием Star Fleet («ЗвездныйФлот»).

Наконец, стоит упомянуть пожалуйнаиболее важную игру, Adven­ture («Приключения»). Вигре использовались двухсловные команды, имя ее разработчика Вилл Краудер. Это была первая приключенческая компьютернаяигра.

Кроме того, в конце 70-х была создана игра по имени Zork,которая стала доступна для пользователей домашних компьютеров в 1981 году. Эту игру до сих пор можно купить.Игра Zork основывается на игре Adventure (2).

1.2.<span Times New Roman"">        

Описание компонентов, используемыхпри реализации практической части курсовой работы

В практической части данной курсовойработы используются следующие визуальные и невизуальные компоненты (3, 4, 5)среды программирования BorlandDelphi6.0.

1.2.1. Компонент TMainMenu

<img src="/cache/referats/11659/image002.jpg" align=«left» hspace=«12» v:shapes="_x0000_s1026">TMainMenu  позволяет поместить главное меню в программу.При помещении TMainMenu на форму это выглядит, как просто иконка. Иконкиданного типа называют невидимым (невизуальным) компонентом, поскольку ониневидимы во время выполнения программы. Создание меню включает три шага:

1) помещение TMainMenu на форму,

2) вызов Дизайнера Меню черезсвойство Items в Инспекторе Объектов,

3) определение пунктов меню в Дизайнере Меню.

Этот компонент доступениз модуля MENUS, и находится на странице Палитры компонентов Standard

Этот компонентпредставляет главное меню формы и наследует все методы и свойства TMenu. Особенность его в том, что в немреализован сложный механизм объединения меню. Это необходимо по следующимпричинам:

1.<span Times New Roman"">    

Если в приложении имеется несколькоформ со своими меню, то для упрощения работы целесообразно соединить их в однои управлять меню из главной формы.

2.<span Times New Roman"">    

Объединение меню нужно при работе синтерфейсом MDIи его подокнами.

3.<span Times New Roman"">    

Механизм объединения менюиспользуется серверами OLE, запускаемыми по месту нахождения объекта OLE. Загружаясь, сервер дописывает осу­ществляемыеим операции к меню другого приложения.

Для того чтобыреализовать объединение меню, у тех форм, меню которых будут присоединены кглавному, необходимо установить в Trueсвойство: (Рb) propertyAutoMerge: Boolean.

При этом у главного менюоно должно оставаться равным False, иначе главное меню будет вообще невидимым.Объединение будет происходить автоматически при активизации новых форм илисерверов OLE. Кроме автоматического режима, объединение меню можно выполнить привызове метода: procedureMerge(Menu: TMainMenu).

Присоединяемое меню принеобходимости может быть легко отсоединено вы­зовом метода: procedureUnmerge(Menu: TMainMenu).

При установленном в Trueсвойстве AutoMerge ссылка наприсоединенное меню будет сохраняться в специальном поле компонента иотсоединяться в нужных случаях автоматически (например, при закрытии формы,которой оно принадлежит).

Объединение менюпроисходит по специальным правилам, в основе которых лежит использованиегруппового индекса (свойства GroupIndex) каждого объек­та TMenuItem.

У пунктов меню одногоуровня, в частности всех подменю верхнего уровня в главном меню, свойство GroupIndexявляется неубывающим, т. е. у после­дующегопункта групповой индекс больше либо равен индексу предыдущего. Это требованиеотслеживается как на этапе разработки, так и на этапе испол­нения. Например,пусть пункты меню имеют индексы 0, 3, 4, 5, 6. Если включить пункт меню синдексом 5 между пунктами с индексами 0 и 3, то 3 и 4 будут изменены на 5. Авот изменить большее значение Х на меньшее Y, если впереди есть пункты синдексом, большим Y, невозможно. Если в этом примере попытаться изменить индекс 6 на 4, тоэто приведет к возникно­вению исключительной ситуации EMenuError.

Для обычных формобъединение происходит только на верхнем уровне в главном меню во время ихактивизации. В объединенном меню все подменю будут располагаться по возрастаниюномера группового индекса, при этом:

1.<span Times New Roman"">    

если в присоединяемом меню естьпункты с таким же групповым индексом, что и в исходном, то все их множествозаменяет все множество таких пунктов в исходном меню;

2.<span Times New Roman"">    

все пункты присоединяемого меню,групповой индекс которых не встречается в исходном, добавляются к нему ивставляются на соответствующие их индексу места.

К окнам интерфейса MDIвсе сказанное относится только призапуске приложения. Если в формах приложения со стилем fsMDIChildесть свои главные меню, то в этотмомент они автоматически сольются с главным меню формы fsMDIFormнезависимо от состояния AutoMerge.

На уровне работы ссерверами OLEпредусмотрены дополнительные возмож­ности по объединению меню. Если вкомпонент TOLEContainerзагружен объект OLE, то в конец подменю Editобычно добавляется подменю, изкоторого можно вызвать функции открытия и редактирования этого объекта. Послеактивизации сервера он может не только вставлять свои подменю в главное, но идобавлять новые пункты к уже существующим подменю.

Три метода TMainMenuиспользуются для работы с меню OLE:

1.<span Times New Roman"">    

procedurePopulateOle2Menu(SharedMenu: HMenu; Groups: array of Integer; var Widths: arrayof Longint);

2.<span Times New Roman"">    

procedure GetOle2AcceleratorTable(varhAccel: THandle; var numAccels: Word; Groups: array of Integer) ;

3.<span Times New Roman"">    

procedureSet01e2MenuHandle(Handle: HMENU);

1.2.2. КомпонентTLabel

<img src="/cache/referats/11659/image004.jpg" align=«left» hspace=«12» v:shapes="_x0000_s1027">TLabel служит для отображения текста наэкране. Можно изменить шрифт и цвет метки, если дважды щелкнуть на свойствоFont в Инспекторе Объектов. Видно, что это легко сделать и во время выполненияпрограммы, написав всего одну строчку кода.

Этот компонент доступениз модуля STDCTRLS, и находится на странице Палитры компонентов Standard.

Компонент представляетсобой статический текст. С помощью этого компо­нента на рабочей поверхностиформы можно отобразить информацию, сделать пояснения и показать названия другихкомпонентов. Но он имеет и другую важную функцию — если в составе текста TLabelесть символы-акселераторы,информация об их нажатии может передаваться от TLabelдругому элементу управления.

Свойства компонента приведены втабл.1:

Таблица 1

Свойства компонента TLabel

Свойство

Описание

(Pb) property Caption: TCaption; TCaption = string[255];

Содержит строку с выводимым текстом.

(Pb) property Alignment: TAlignment;

Устанавливает правило выравнивания текста — по правому, левому краю или по центру клиентской области.

(Pb) property AutoSize: Boolean;

В случае Trueпроисходит автоматическое приведение размеров компонента к размерам текста и высоте шрифта.

Продолжение табл.1

(Pb) property ShowAccelChar: Boolean;

Показывает, отображается ли в TLabelакселератор (символ, перед которым стоит знак амперсанда — '&'). Если оно равно False, амперсанд никак не интерпрети­руется. В случае Trueакселератор выделяется в строке подчеркиванием и нажатие клавиш <Аlt>+<символ> приводит к передаче фокуса окну FocusControl(т.к. TLabelсам не является оконным компонентом).

(Pb) property FocusControl: TWinControl;

Определяет оконный компонент, которому посылаются сообщения о вводе акселе­ратора.

(Pb) property Transparent: Boolean;

Прозрачность фона компонента. Если свойство установлено в True, то при перерисовке элемента управления не про­исходит закрашивание клиентской облас­ти. В противном случае — происходит закрашивание кистью bsSolidи цветом Color.

(Pb) property WordMrap: Boolean;

Определяет возможность разрыва слов в случае, если длина выводимого текста превышает ширину компонента.

1.2.3. КомпонентTPanel

TPanel — управляющий элемент, похожий наTGroupBox, используется в декоративных целях. Чтобы использовать TPanel, простопоместите его на форму и затем положите другие компоненты на него. Теперь приперемещении TPanel будут передвигаться и эти компоненты. TPanel используетсятакже для создания панели инструментов и окна статуса.

Этот компонент доступен из модуля EXTCTRLS, и находится на странице Палитрыкомпонентов Standard.

Этот компонент — являетсянесущей конструкцией для размещения других элементов управления. В отличие отпростой рамки (TBevel) панель сама является оконным элементом управления иродителем для всех размещенных на ней компонентов. Часто ее используют длясоздания панелей инстру­ментов, строк состояния и т. п.

За внешнее оформление панели отвечаютсвойства:

(Pb)property Bevel Inner: TPanelBevel;

(Рb) propertyBevelOuter: TPanelBevel;

TPanelBevel= (bvNone, bvLowered, bvRaised) ;

(Pb)property BevelWidth: TBevelWidth;

TBevelWidth= 1..Maxint;

(Pb)property BorderWidth: TBorderWidth;

TBorderWidth= 0..Maxint ;

На границах панелиразмещаются две специальные окаймляющие рамки (bevels): Bevellnnerи BevelOuter. При помощи комбинации белого исерого цветов они имитируют трехмерность — приподнятость (bvRaised) илиутоп-ленность (bvLowered). Обе рамки имеют ширину BevelWidth. Наружная — BevelOuter— расположена прямо по периметру панели,вторая — Bevellnner— внутри на расстоянии BorderWidthот нее. Обе могут быть невидимыми (bvNone), приподнятыми или утопленными.

Комбинируя сочетания bvLowered/bvRaised, можно создать вокруг панели«ров» или «вал».

Иллюзию трехмерностиможет подчеркнуть также стиль обрамления компо­нента:

(Pb)property BorderStyle: TBorderStyle;

TBorderStyle= bsNone… bsSingle;

Значение bsSingleозначает, что панель будет окаймленачерной линией единичной толщины (по периметру, снаружи от обеих рамок).

Выравнивание текстазаголовка панели определяется при помощи свойства:

(Pb) property Alignment: TAlignment;

Свойство (Pb) propertyLocked: boolean; предназначено для определенияспособа взаимодействия панели с размещен­ными на ней объектами OLE. Если оно равно True, последние при активизации сервера OLE«по месту'» не могутзаместить панель.

В обработчике события: (Pb) propertyOnResize: TNotifyEvent; может быть предусмотрена реакцияпользователя на изменение размеров панели.

1.2.4. КомпонентTBitBtn

<img src="/cache/referats/11659/image006.jpg" align=«left» hspace=«12» v:shapes="_x0000_s1029">TBitBtn — кнопка вроде TButton, однако на нейможно разместить картинку (glyph). TBitBtn имеет несколько предопределенныхтипов (bkClose, bkOK и др), при выборе которых кнопка принимает соответствующийвид. Кроме того, нажатие кнопки на модальном окне (Form2.ShowModal) приводит кзакрытию окна с соответствующим модальным результатом (Form2.ModalResult). 

Этот компонент доступен из модуля BUTTONS, и находится на странице Палитрыкомпонентов Additional.

Эта кнопка, будучи потомком TButton, может нести на себе пиктограмму и имеетрад дополнительных удобств в использовании. В Delphiуже определены стандартные видыкнопок:

(Pb) propertyKind: TBitBtnKind;

TBitBtnKind= (bkCustom, bkOK, bkCancel, bkHelp, bkYes, bkNo, bkClose, bkAbort, bkRetry,bklgnore, bkAll);

Для каждой из нихопределены: передаваемый форме результат (ModalResult):

BitBtnModalResults:array[TBitBtnKind] of TModalResult =

(0,mrOk, mrCancel, 0, mrYes, mrNo, 0, mrAbort, mrRetry, mrlgnore, inrAll);

а также название и картинки дляразных состояний. Достаточно установить значение свойства Kind, и кнопка сразу приобретет нужныйвид. Более того, некоторые из видов кнопок при нажатии сразу совершают опре­деленныедействия. Так, bkHelp осуществляет инициализацию системы помощи со своим (илиближайшим ненулевым родительским) контекстом. Кнопка вида bkCloseзакрывает форму, которой онапринадлежит, вызывая ее метод Close.

Кнопка будет отнесена к видуbkCustom, если она:

1.<span Times New Roman"">    

назначена Default, но при этом не принадлежитмножеству [bkOk, bkYes];

2.<span Times New Roman"">    

назначена Cancel, но не принадлежит множеству [bkCancel, bkNo];

3.<span Times New Roman"">    

у нее изменена пиктограмма;

4.<span Times New Roman"">    

модальный результат не соответствуетопределенному для этого вида кно­пок.

За внешний вид этойкнопки отвечают свойства, рассмотренные ниже. Стиль изображения кнопок взависимости от операционной системы задается свойством:

(Pb)property Style: TButtonStyle;

TButtonStyle= (bsAutoDetect, bsWin31, bsNew);

Стиль bsNewсоответствует Windows95. В любом случае корректным будетприменение стиля bsAutoDetect, который сам распознает версию системы. Пиктограммакнопки, которая вместе с текстом видна на ее поверхности, определяетсясвойством:

(Pb) propertyGlyph: TBitmap;

Для создания эффектанажатия картинка должна немного изменяться в зависимости от состояния; крометого, отдельная картинка нужна для неактивного состояния (когда нажатие невоспринимается). В свойстве Glyphдолжна быть одна битовая карта, но она можетсодержать картинки сразу для нескольких состояний кнопки (максимум четыре). Ониинтерпретируются как соответствующие нормальному (отжатому), запрещенному(неактивному), нажатому и утопленному состояниям (последнее применяется толькодля кнопок TSpeedButton). Для этого картинки должны быть расположены подряд вплотнуюпо горизонтали. Например, при размере картинок 16х16 нужна объединенная битоваякарта 64х16. Если каждая из картинок квадратная и ширина общей картинки нацелоделится на высоту, то при присвоении ее свойству Glyphсистема сможет распознать их искорректировать количество, определяемое свойством:

(Pb)property NumGlyphs: TNumGlyphs ;

TNumGlyphs= 1..4;

При отрисовке взависимости от состояния из большой битовой карты будет использована нужнаячасть.<

еще рефераты
Еще работы по программированию, базе данных