Введение icon

Введение



НазваниеВведение
Дата конвертации30.06.2012
Размер142.89 Kb.
ТипРеферат
1. /OOP/Лабораторная работа ь00-Введение.doc
2. /OOP/Лабораторная работа ь01-Calc&Type.doc
3. /OOP/Лабораторная работа ь02-Drag&Except.doc
4. /OOP/Лабораторная работа ь03-Font&Phrase.doc
5. /OOP/Лабораторная работа ь04-Menu.doc
6. /OOP/Лабораторная работа ь05-Canvas.doc
7. /OOP/Лабораторная работа ь06-Animation.doc
8. /OOP/Лабораторная работа ь07-Hint&Format.doc
9. /OOP/Лабораторная работа ь08-Notepad&BMP.doc
10. /OOP/Лабораторная работа ь09-StringGrid.doc
11. /OOP/Лабораторная работа ь10-MediaPlayer.doc
12. /OOP/Лабораторная работа ь11-Shape.doc
13. /OOP/Лабораторная работа ь12-Events.doc
14. /OOP/Лабораторная работа ь13-Finally&Except.doc
15. /OOP/Лабораторная работа ь14-Animal.doc
16. /OOP/Лабораторная работа ь15-MyButton.doc
17. /OOP/Темы курсовых работ по курсу ООП.doc
Введение
Лабораторная работа №01
Лабораторная работа №02
Лабораторная работа №03
Лабораторная работа №04
Лабораторная работа №05
Лабораторная работа №06
Лабораторная работа №07
Лабораторная работа 08
Лабораторная работа №09
Лабораторная работа №10
Свойства в Delphi
Лабораторная работа №12 События в Delphi
Chapter 12
Лабораторная работа №14
Лабораторная работа №15
Кнопка (TButton)



Введение

Компоненты среды Delphi. Репозиторий объектов и эксперты.

Обращение к справочной системе Help


Для вызова справочной системы необходимо выбрать соответствующую команду в выпадающем меню Help или отметить элемент интерфейса в исходном тексте и нажать клавишу F1. При нажатии кнопки “Разделы” в окне Help появляется диалоговое окно справочной системы Windows 95, которое позволяет вам просмотреть содержание всех файлов Help группы, отыскать ключевое слово по индексу или начать процесс поиска.

Меню и команды Delphi


Чтобы выдать команду в среде Delphi, можно воспользоваться тремя основными способами:

  • С помощью меню.

  • С помощью полоски SpeedBar (инструментальной линейки).

  • С помощью SpeedMenu (одного из локальных меню, которое активизируется при нажатии правой кнопки мыши).

Меню File


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

К командам, работающим с проектами, относятся New, New Application, Open, Reopen, Save Project As, Save All, Close All, Add to Project и Remove from Project. С файлами исходного кода работают команды New, New Form, New Data Module, Open, Reopen, Save As, Save, Close и Print. Основной командой является File/New, которую можно использовать для вызова экспертов, для начала работы с новым приложением, для наследования формы из уже существующей и т.д. Чтобы открыть проект или файл исходного кода, с которыми вы работали последний раз, используйте команду File/Reopen.

Меню Edit


Стандартные возможности меню Edit применимы как к тексту, так и к компонентам формы. Можно копировать и вставлять тот или иной текст в редакторе, копировать и вставлять компоненты в одной форме или из одной формы в другую. Также можно копировать и вставлять компоненты в другое групповое окно той же формы, например, в панель или блок группы; копировать компоненты из формы в редактор, и наоборот. Delphi помещает компоненты в буфер обмена, преобразуя их в текстовое описание. Можно соответствующим образом отредактировать этот текст, а затем вставить его обратно в форму в виде нового компонента. Можно выбрать несколько компонентов и скопировать их как в другую форму, так и в текстовый редактор. Это может пригодиться, когда вам придется работать с рядом схожих компонентов. Вы сможете скопировать один компонент в редактор, размножить его нужное число раз, а затем вставить назад в форму целую группу.

Меню Search


Если вы выберете команду Incremental Search, то вместо того чтобы показать диалоговое окно, где вводится образец для поиска, Delphi переходит в редактор. Когда вы введете первую букву, редактор перейдет к первому слову, которое начинается с этой буквы. Продолжайте набор букв и, курсор будет последовательно переходить к словам, в начале которых будут стоять введенные символы. Эта команда очень эффективна и чрезвычайно быстра. Команда Browse Symbol вызывает Object Browser – инструмент, который можно использовать для просмотра многих деталей при исследовании откомпилированной программы.

Меню View


Большинство команд меню View применяются для отображения какого-либо окна среды Delphi, например Project Manager, Breakpoints List или Components List. Эти окна не связаны друг с другом. Эти окна не связаны друг с другом. Команда Toggle Form/Unit используется для перехода от формы, над которой вы работаете к ее исходному коду, и обратно. Команда New edit window создает дубликат окна редактирования и его содержимого. В Delphi это единственный способ просмотреть два файла рядом друг с другом, поскольку редактор для показа нескольких загруженных файлов использует ярлычки. После дублирования окна редактирования могут содержать разные файлы. Последние две команды меню View можно использовать для удаления с экрана полоски SpeedBar и палитры Components, хотя при этом среда Delphi становится менее удобнее для пользователя. Команда Build All заставляет Delphi откомпилировать каждый исходный файл проекта, даже если после последней трансляции он не был изменен. Для проверки написанного кода без создания программы можно использовать команду Syntax Check. Команда Information дает некоторые подробности о последней выполненной вами трансляции. Команда Options применяется для установки опций проекта: опций компилятора и редактора связей, опций объекта приложения и т.д.

Меню Run


Меню Run можно было бы назвать Debug (отладка). Большинство команд в нем относится к отладке, включая саму команду Run. Программа, запускаемая внутри среды Delphi, выполняется в ее интегрированном отладчике (если не отключена соответствующая опция). Для быстрого запуска приложения используется клавиша F9. Остальные команды применяются в процессе отладки для пошагового выполнения программы, установки точек прерывания, просмотра значений переменных и объектов, и т.п.

Меню Component


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

Меню Tools


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

Полоска кнопок быстрого доступа SpeedBar


Наиболее часто используемые команды Delphi имеются в инструментальной линейке SpeedBar. Изменить размеры SpeedBar можно буксируя толстую линию между ней и палитрой Сcomponents. Другие разрешенные в SpeedBar операции добавляют, удаляют или заменяют пиктограммы с помощью команды Configure собственного локального меню SpeedBar. Эта операция вызывает инструмент SpeedBar Editor. Чтобы добавить пиктограмму в SpeedBar, необходимо найти ее в нужной категории и отбуксировать в полоску. Подобным образом можно отбуксировать пиктограмму за пределы SpeedBar или просто передвинуть ее в другое место.

Локальные меню SpeedMenu


Хотя меню Delphi содержит большое количество элементов, не все команды доступны через выпадающие меню. Иногда для некоторых окон или областей окна приходится использовать SpeedMenu (локальное меню). Чтобы активизировать SpeedMenu, нужно нажать над необходимым элементом интерфейса пользователя правую кнопку мыши или клавиши Alt и F10.

Работа с формами


Проектирование форм – ядро визуальной разработки в среде Delphi. Каждый помещаемый в форму компонент или любое задаваемое свойство сохраняется в файле, описывающем форму (DFM-файл), а также оказывает некоторое влияние на исходный текст, связанный с формой (PAS-файл).

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

При работе с формой можно обрабатывать ее свойства, свойства одного из ее компонентов или нескольких компонентов одновременно. Чтобы выбрать форму или компонент, можно просто щелкнуть по нему мышью или воспользоваться Object Selector ( комбинированный список в Object Inspector), где всегда отображены имя и тип выбранного элемента. Для выбора нескольких компонентов можно или нажать клавишу Shift и щелкать по компонентам левой кнопкой мыши, или отбуксировать в форме рамку выбора.

SpeedMenu формы содержит ряд полезных команд. Для изменения относительного расположения компонентов одного вида можно использовать команды Bring to Front и Send To Back. Командой Revert To Inherited можно воспользоваться, чтобы в унаследованной форме установить те значения свойств выбранного компонента, которые были у них в родительской форме. При выборе сразу нескольких компонентов вы можете выровнять их или изменить их размеры.

С помощью SpeedMenu можно также открыть два диалоговых окна, в которых устанавливается порядок обхода визуальных управляющих элементов и порядок создания невизуальных управляющих элементов. Команда Add To Repository добавляет текущую форму в список форм, доступных для использования в других проектах.

Для установки положения компонента кроме применения мыши имеются еще два способа:

  • Установка значений для свойств Top и Left.

  • Использование клавиш курсора при нажатой клавише Ctrl.

Метод Ctrl+клавиша курсора особенно удобен при тонкой подстройке положения элемента. Точно также, нажимая клавиши курсора при нажатой клавише Shift, можно подстроить размер компонента.

Палитра компонентов


Чтобы добавить в текущую форму новый компонент, можно щелкнуть на одной из страниц палитры Components, а затем, чтобы разместить новый элемент, щелкнуть в форме. Причем в форме можно или буксировать мышь с нажатой левой кнопкой, чтобы установить сразу и размер, и положение компонента, или просто щелкнуть один раз, позволяя Delphi установить размер по умолчанию.

Каждая страница палитры содержит ряд компонентов, которые обозначены пиктограммами и именами, появляющимися ввиле подсказки. Эти имена являются официальными названиями компонентов. В действительности это названия классов, описывающих компоненты без первой буквы T (например, если класс называется Tbutton, имя будет Button). Если необходимо поместить в форму несколько компонентов обного и того же вида, то при выборе компонента щелчком в палитре удерживайте нажатой клавишу Shift Затем при каждом щелчке в форме Delphi будет вставлять новый компонент выбранного вида.Чтобы остановить эту операцию, просто щелкните по стандартному селектору (пиктограмма стрелки) слева от палитры Components.

Object Inspector


Object Inspector используется при проектировании формы для установки свойств компонента (или самой формы). В его окне в двух колонках изменяемого размера перечислены свойства (или события) выбранного элемента и их значения. Окно Object Selector в верхней части Object Inspector указывает текущий компонент и его тип данных, и этот селектор можно использовать для изменения текущего выбора.

В Object Inspector перечислены не все свойства компонентов, а только те, что могут быть установлены на этапе проектирования. Правая колонка Object Inspector разрешает правильное редактирование в соответствии с типом данных свойства. В зависимости от свойства можно вставить строку или число, выбрать из списка опций (на эту возможность указывает стрелка) или вызвать специальный редактор (об этом говорит овальная кнопка). Для некоторых свойств, таких, как Color, разрешен и ввод значения, и выбор элемента из списка, и вызов специального редактора.

Написание кода


При проектировании формы в Delphi обычно приходится писать кое-какой код для отклика на некоторые из ее событий. Когда вы нажимаете кнопку мыши в форме или на компоненте, Windows посылает вашему приложению сообщение, информируя его об этом событии. Реакция Delphi состоит в получении сообщения о событии и вызове соответствующего метода отклика на событие. Для каждого вида компонентов Delphi определяет ряд различных событий. Вы можете узнать о событиях, доступных для формы или компонента, рассматривая страницу Events окна Object Inspector в тот момент, когда выбран необходимый элемент.

Вставим в форму компонент – кнопку – и заставим его откликаться на событие, связанное с нажатием левой кнопки мыши. При щелчке по кнопке мышью в работаэщей программе возникает событие OnClick (По щелчку) . Пока это событие никак не обрабатывается программой и поэтому нажатие кнопки не приведет ни к каким последствиям. Чтобы заставить программу реагировать на нажатие кнопки, необходимо написать на языке Object Pascal фрагмент программы, который называется обработчиком события. Фрагмент оформляется в виде специальной подпрогаммы – процедуры.

Чтобы заставить Delphi самостоятельно сделать заготовку для процедуры обработчика события OnClick, дважды щелкните мышью по вновь вставленному компонету. В ответ Delphi активизирует окно кода и вы увидите в нем такой текстовый фрагмент:


procedure TForm1.Button1Click(Sender: Tobject);

begin


end;

Слово procedure извещает компилятор о начале подпрограммы –процедуры. За ним следует имя процедуры TForm1.Button1Click. Это имя – составное: оно состоит из имени класса TForm1 и собственно имени процедуры Button1Click.

Каждый компонент принадлежит к строго определенному классу, а все конкретные экземпляры компонентов, вставляемые в форму, получают имя класса с добавленным числовым индексом. По используемому в Delphi соглашению все имена классов начинаются с буквы Т. Таким образом, имя TForm1 означает имя класса с добавленным числовым индексом. По используемому в Delphi соглашению все имена классов начинаются с буквы Т. Таким образом, имя TForm1 означает имя класса, созданного по образцу стандартного класса Tform. Если вы посмотрите начало текста в окне кода, то увидите следующие строки:


type

TForm1 = class(TForm)

Button1: Tbutton;

procedure TForm1.Button1Click(Sender: Tobject);

private

{private declarations}

public

{public declaration}

end;

var

Form1: TForm1;


Строка TForm1 = class(TForm) определяет новый класс TForm1, который порожден от стандартного класса TForm. Стандартный класс TForm описывает пустое Windows-окно, в то время как класс TForm1 описывает окно с уже вставленным в него компонентом кнопка..

Каждый раз когда вы работаете над событием, Delphi открывает редактор с исходным файлом, связанным с формой. Редактор позволяет работать над несколькими файлами исходного текста одновременно, используя образ “записной книжки с ярлычками”. Каждая страница записной книжки соответствует отдельному файлу.

Компиляция проекта


Компиляция проекта происходит при запуске его на выполнение. Транслируя проект Delphi компилирует только те файлы, которые изменялись. Но если вы выберите в меню Project команду Build All, то будет откомпилирован каждый файл, даже если он не изменялся.

Проект содержит список файлов исходного кода, которые являются частями проекта, а также соответствующих им форм (при наличии таковых). Сначала каждый файл исходного кода превращается в откомпилированный модуль Delphi – файл с тем же именем, что и у исходного файла на языке Паскаль, но с расширением DCU.

Во время компиляции и компоновки самого проекта откомпилированные модули, составляющие проект, сливаются (или связываются) друг с другом и с кодом библиотеки VCL, образуя исполнимый файл.

Интегрированный отладчик


В Delphi имеется встроенный отладчик, обладающий огромным количеством возможностей. При каждом запуске из среды Delphi программа уже выполняется в отладчике. Для установки точки останова или щелкните в промежутке между левой рамкой окна редактирования и текстом, или выберите в SpeedMenu команду Toggle Breakpoint, или нажмите клавишу F5. Когда вы разместили ряд точек останова, можете использовать команду Breakpoints меню View, чтобы открыть окно Breakpoints List. Один из пунктов в верхней части окна Breakpoints List предполагает добавление условия в точке останова, так чтобы программа выполнялась только при выполнении данного условия. Кнопка Step Over на линейке SpeedBar позволяет просмотреть выполнение операторов один за другим, а кнопка Trace Into позволяет трассировать вызываемые методы (т.е. выполнять шаг за шагом код подпрограмм).

Если программа остановлена в отладчике, вы можете проверить значение любого идентификатора (для переменных, объектов, компонентов, свойств и т.д.), который доступен в этой точке программы. Для этого существуют два способа: использовать диалоговую панель Evaluate/Modify или добавить элемент в окно Watch List. Самый простой способ открыть диалоговую панель Evaluate/Modify – выделить переменную в редакторе исходного текста, а затем выбрать команду Evaluate/Modify из SpeedMenu редактора. Вы можете устанавливать элементы наблюдения, используя команду Add Wath at Cursor в Speed Menu редактора.

Файлы, создаваемые системой


Когда вы сохраняете новый проект, Delphi создает ряд файлов. Здесь приводится списо наиболее важных файлов.

  • Основной файл проекта типа .DPR. Это основной модуль исходного текста проекта. Имеется только один DPR-файл для каждого проекта. Этот файл, кроме всего прочего, перечисляет имена других файлов, составляющих проект.

  • Файлы формы типа .DFM. Это двоичные файлы ресурсов, содержащие определение визуальных форм. В проекте может быть много форм и каждая имеет собственный .DFM файл.

  • Файл модуля Паскаля типа .PAS. Содержит код Object Pascal для соответствующей формы или для автономного модуля кода.

  • Файл опций проекта типа .OPT. Файл, который содержит различные установки Delphi (текстовый файл).

  • Откомпилированные файлы модуля типа .DCU. Содержат объектный код существующего .PAS-файла модуля.

  • Откомпилированные программные файлы типа .EXE. Это собственно программы Windows.

  • Откомпилированные файлы динамических библиотек типа .DLL. Это откомпилированные модули Windows, которые могут использоваться одновременно многими программами Windows.

Страницы репозитория объектов


В Delphi есть несколько команд меню, с помощью которых вы можете создать новую форму, новое приложение, новый модуль данных, новый компонент и т.п. Эти команды находятся в меню File, а также в других выпадающих меню. Но если вместо них выдать команду File/New, Delphi откроет окно Object Repository.

Репозиторий используется для создания новых элементов любого вида: форм, приложений, модулей данных, библиотек, компонентов и т.д. Диалоговое окно Object Repository содержит несколько страниц:

  • Страница New позволяет создавать новые элементы многих разных типов.

  • Страница текущего проекта (в действительности на ярлычке данной страницы вы увидите имя проекта, например Project1) позволяет унаследовать форму или модуль данных от аналогичного объекта, включенного в ваш текущий проект.

  • Страницы Forms, Dialogs , Data Modules позволяют создавать новые формы, диалоговые панели и модули данных, используя эксперты или существующие объекты этих типов.

  • Страница Project позволяет скопировать файлы из хранящегося в репозитории проекта.

В нижней части диалогового окна Object Repository находятся три радиокнопки, с помощью которых можно указать: хотите ли вы скопировать существующий элемент, унаследовать его или применить непосредственно, не копируя.

Страница New


Список элементов, которые можно создать с помощью этой страницы:

  • Application создает новый пустой проект.

  • Data Module создает новый пустой модуль данных.

  • DLL создает новую библиотеку DLL.

  • Form создает новую пустую форму.

  • Text открывает в редакторе новый текстовый файл.

  • Unit создает новый пустой модуль, не связанный с формой.

Страница Forms


Ниже приведен список необходимых для работы предопределенных форм:

  • About Box – простая панель “О программе”.

  • Duil List Box – форма с двумя разными списками; позволяет пользователю выбрать ряд элементов в одном списке и нажатием кнопки переместить их во второй. Кроме компонентов эта форма содержит значительное количество не очень простого кода на языке Паскаль.

Страница Dialogs


Эта страница похожа на предыдущую, но содержит другие элементы.

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

  • Dialog with help – два варианта диалоговой панели с кнопкой вызова справочной информации.

  • Password dialog – диалоговая панель с простым окном редактирования, которая имеет необходимые для ввода пароля опции; код отсутствует.




  • Standart Dialog Box – стандартная диалоговая панель, которая доступна в двух вариантах с различным расположением кнопок.

Страница Data Modules


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

Страница Projects


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

  • Application Expert – простой эксперт, в котором вы можете выбрать файловую структуру и некоторые другие элементы приложения.

  • MDI Application задает ключевые элементы программы с интерфейсом Multiple Document Interface (MDI). В этом приложении определена основная форма для окна MDI-фрейма, содержащая меню, строку состояния и инструментальную линейку. Кроме того, в нем имеется вторая форма, которую на этапе выполнения можно использовать для создания дочерних окон.

  • SDI Application определяет основную форму со стандартными атрибутами современного интерфейса пользователя, включая инструментальную линейку и строку состояния, а также типичную панель About.

  • Win95 LogoApplication описывает простое приложение, в котором присутствует большинство элементов, необходимых для получения логотипа Windows 95. Данная команда в основном создает SDI-приложение с компонетом RichEdit и вставляет в него код, который делает приложение совместимым с электронной почтой.

Эксперты Delphi


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

Application Expert


Его можно активизировать из страницы Project окна Object Repository. Первая страница этого эксперта позволяет добавить в программу некоторые стандартные выпадающие меню: File, Edit, Window и Help. На второй странице эксперта вы зададите расширения тех файлов, которые должна рассматривать программа. Вам придется ввести как описание файла, например Текстовый файл (*.txt) так и его расширение txt Эти величины будут использоваться в качестве значений по умолчанию диалоговыми окнами File Open и File Save, которые Application Expert добавит в программу (если вы выбрали поддержку файлов).

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

После завершения работы над инструментальной линейкой вы можете перейти на последнюю страницу эксперта. Здесь устанавливаются многие дополнительные опции, например, можно доказать поддержку интерфейса MDI, добавить строку состояния или разрешить всплывающие подсказки. Вы также можете задать имя нового приложения и указать каталог для его исходных файлов. Каталог для приложений должен уже существовать. Если вы хотите поместить файлы проекта в новый каталог, выберите кнопку Browse и введите новый путь – появится диалоговое окно с вопросом, хотите ли вы создать новый каталог.

Dialog Box Expert


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





Похожие:

Введение iconДокументы
1. /Введение в DELPHI/Alexs.rtf
2. /Введение...

Введение iconДокументы
1. /Введение в JavaScript/WORD/COVER.DOC
2. /Введение...

Введение iconЗанятие №7. Введение лекарств с помощью инъекций. (практическая работа)
Вступление. Инъекции. Какой это способ введения лекарственных препаратов? (парентеральное введение)
Введение iconДокументы
1. /ВВЕДЕНИЕ В JAVASCRIPT ДЛЯ МАГА/PART1.DOC
2. /ВВЕДЕНИЕ...

Введение iconВведение в философию
...
Введение iconЛитература 7 кл. 7 Класс (68 часов по программе) введение
Введение. Изображение человека как важнейшая идейно-нравственная проблема литературы. Личность автора, его труд, его позиция и авторское...
Введение iconВведение Введение Космология
При рассмотрении изменений, происходящих во Вселенной, космология близко соприкасается с космогонией, изучающей происхождение и развитие...
Введение iconПлан-график мероприятий, направленных на введение фгос в мюоу сош №42 с 2011-2012 учебного года
Введение федеральных государственных образовательных стандартов (далее – фгос) начального общего образования во всех общеобразовательных...
Введение iconВ. А., Давыдов А. В. Краткое введение в преобразование Гильберта-Хуанга Введение
Функции базиса получаются адаптивно непосредственно из данных процедурами отсеивания функций «эмпирических мод». Мгновенные частоты...
Введение iconПоложение о контрольной работе по Криминалистике (разделы: «Введение в криминалистику. Криминалистическая техника»)
«Введение в криминалистику. Криминалистическая техника») это письменная самостоятельная работа курсантов, слушателей или студентов,...
Введение iconГлавная незнамо-чаво введение глава Введение в незнамо-чаво оглавление
Системный подход, системное движение, анализ систем, теория систем, теория сложных систем, системология вот часть терминов и понятий,...
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©podelise.ru 2000-2014
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы

Разработка сайта — Веб студия Адаманов