Визуальные средства разработки программных приложений

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

Рубрика Программирование, компьютеры и кибернетика
Вид шпаргалка
Язык русский
Дата добавления 26.06.2014
Размер файла 285,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Перечень вопросов

1. Диалоговые окна. Типы диалоговых окон. Общие принципы программирования диалоговых окон. Использование ClassWizard для программирования диалоговых окон.

2. Формирование ресурса диалогового окна. Выбор элементов управления для диалогового окна.

3. Задание идентификаторов диалогового окна и элементов управления. Создание класса диалогового окна. Ассоциированные переменные.

4. Организация вывода диалогового окна на экран. Функция обмена данными между элементами управления и ассоциированными переменными. Иерархия вызовов функций при организации модального диалога.

5. Использование элемента управления типа «список». Стили окон списков. Сообщения от элемента управления типа «список» (LBN_). Некоторые методы класса CListBox.

6. Комбинированные списки (класс CCombobox). Стили окон комбинированных списков. Сообщения от элемента управления типа «комбинированный список» (CBN) Некоторые методы класса CCombobox.

7. Использование элементов типа переключатель (флажки, радио-кнопки). Статические поля (Static text). Окна редактирования (Edit box). Методы класса CEdit.

8. Обработка сообщений. Карты сообщений.

9. Реализация обработки сообщений в приложении с помощью ClassWizard. Виды сообщений.

10. Команды. Реализация обработки команд с помощью ClassWizard.

11. Архитектура «Документ-представление». Классы документа и представления.

12. Вывод на экран. Контекст устройства. Классы контекстов устройства в MFC.

13. Классы изобразительных средств. Примеры рисования простейших фигур.

14. Использование перьев. Работа с кистью.

15. Концепция сохранения - восстановления объектов. Необходимые действия по обеспечению возможности сохранения восстановления объектов класса CDocument. Разбор примера с сериализацией в классе документа.

16. Создание класса, обеспечивающего сохранение-восстановление объектов.

17. Использование основных методов класса CFile (Открыть файл, записать в файл, считать из файла. Привести пример записи в файл текущей выборки базы данных). Использование стандартных диалоговых панелей для открытия и записи в файл.

18. Панель инструментов и строка состояния. Добавление и удаление пиктограмм. Обработка сообщений от кнопок панели инструментов.

19. Доступ к данным в Visual C++. Технологии DAO, RDO, ODBC.

20. Доступ к данным в Visual C++. Технологии UDA, OLE DB.

21. Классы ODBC. Создание программы, работающей с БД на основе классов ODBC.

22. Регистрация БД. Создание заготовки приложения.

23. Создание экранной формы для отображения содержимого БД.

24. Добавление и удаление записей в технологии ODBC.

25. Сортировка и фильтрация записей в технологии ODBC.

26. Работа с несколькими таблицами в технологии ODBC.

27. Схема процесса обмена данными между источником данных и экранной формой с использованием классов CRecordSet и CRecordView. Режимы работы с наборами данных Snapshot и Dynaset.

28. Анализ текстов, созданных АррWizard для класса, производного от CRecordSet. (Функции DoFieldExchange(), GetDefaultConnect(), GetDefaultSQL() и др.).

29. Анализ текстов, созданных Арр Wizard для класса, производного от CRecordView. (Функции DoDataExchange(), OnInitialUpdate(), OnMove()). Связь ресурсов с ассоциированными переменными. Доступ к объекту «набор данных» (класса CRecordSet) из класса CRecordView.

30. Основные методы класса CDatabase.

31. Класс CRecordset. Компоненты данных и основные методы (открытие набора, получение атрибутов результирующего набора IsOpen, IsBOF, IsEOF, IsDeleted, обновление результирующего набора).

32. Класс CRecordset. Компоненты данных и основные методы (операции перемещения по результирующему набору, операции IsFieldDirty, IsFieldNull, Requary, SetFieldDirty, SetFieldNull).

33. Класс CRecordset. Переопределяемые методы (DoFieldExchange, GetDefaultSQL. GetDefaultConnect).

34. Класс CRecordView. Основные методы (конструктор, OnGetRecordSet, OnMove).

35. Технология ADO. Объектная модель, наборы ADO.

36. Применение ADO Data Control и DataGrid Control.

37. Удаление, добавление и редактирование записей в технологии ADO.

38. Сортировка и фильтрация записей в технологии ADO.

39. Настройка элементов управления ADO Data Control и DataGrid Control из кода приложения.

40. Обзор технологий ActiveX и OLE.

41. Понятие COM.

42. Управляющие элементы ActiveX.

43. Возможности АррWizard по созданию приложений, поддерживающих технологию ActiveX.

44. Библиотеки динамической компоновки DLL. Статическое подключение DLL. Экспортирование функций из DLL.

45. Библиотеки динамической компоновки DLL. Динамическая загрузка и выгрузка DLL. Экспортирование функций из DLL.

46. Создание и использование динамически связываемых библиотек. Привести пример.

47. Потоки в Visual C++. Создание рабочего потока. Управление приоритетами потоков.

48. Синхронизация потоков. Объекты синхронизации и классы MFC.

49. Потоки в Visual C++. Работа с исключающим семафором.

50. Потоки в Visual C++. Работа с критической секцией.

51. Потоки в Visual C++. Работа с семафором.

52. Потоки в Visual C++. Работа с объектом события.

53. Программирование сетевых приложений в Visual C++. Технология Windows Socket для взаимодействия приложений.

54. Модель клиент-сервер.

55. Создание сетевого приложения. Методы класса CAsyncSocket.

56. Создание сетевого приложения. Функции обработки событий для класса сокета.

57. Посылка и прием сообщения приложением.

58. Отладка программ в Visual C++. Точка останова. Установка точек останова. Команды и окна отладки.

59. Отладка программ в Visual C++. Анализ значений переменных. Окно CallStack.

1. Диалоговые окна. Типы диалоговых окон. Общие принципы программирования диалоговых окон. Использование ClassWizard для программирования диалоговых окон

В операционной среде Windows получить данные от пользователя приложение может через диалоговые окна.

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

Библиотека классов MFC содержит класс Dialog (наследованный от базового класса CWnd), специально предназначенный для управления диалоговыми панелями.

Диалоговые панели бывают двух типов - модальные и немодальные.

Модальные и немодальные диалоговые окна. Большинство диалоговых окон, которые приходится включать в состав приложения, относятся к так называемым модальным окнам. Модальное окно выведено всегда поверх всех остальных окон на экране. Пользователь должен поработать в этом окне и обязательно закрыть его, прежде чем приступить к работе в любом другом окне этого же приложения. Примером может служить окно, которое открывается при выборе команды File\Open любого приложения Windows.

Немодальное диалоговое окно позволяет пользователю, не закончив работы с ним, работать в других окнах приложения, выполнить там необходимые действия, затем снова вернуться в немодальное окно и продолжить работу. Типичными немодальными окнами являются окна, которые открываются при отработке команд Edit\Find (Правка\Поиск) и Edit\Replace (Правка\Замена) во многих приложениях Windows.

Для каждого диалогового окна в приложении необходимо разработать две вещи: ресурсы окна и класс окна.

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

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

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

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

Чтобы создать модальную диалоговую панель, сначала необходимо создать объект определенного в приложении класса диалоговой панели, а затем вызвать метод DoModal, определенный в классе CDialog.

2. Формирование ресурса диалогового окна. Выбор элементов управления для диалогового окна

Первый шаг процесса организации диалогового окна в приложении - формирование ресурса окна. Когда Windows видит ресурс окна в программе, она использует команды из этого ресурса для конструирования работающего окна.

Чтобы приступить к формированию ресурсов, необходимо выбрать пункт Insert Resource из меню Visual Studio - появится диалоговое окно Insert Resource. Дважды щелкните на элементе Dialog в окне Resource Type - этим вы вызываете редактор диалогового окна, который выводит на экран заготовку окна.

Рис. 2.1. Добавление ресурса диалогового окна

Рис.2.2. Заготовка диалогового окна

Вызовите на экран диалоговое окно Dialog Properties для вновь создаваемого диалогового окна, выбрав в меню View\Properties или щёлкнув правой кнопкой мыши на диалоговом окне. В поле Caption (Надпись) введите заголовок диалога, как это показано на рис.2.3.

Рис.2.3. Окно свойств (Dialog Properties) создаваемого диалогового окна

Выбор элементов управления для диалогового окна достаточно велик. Для установки элементов диалогового окна используется технология, получившая наименование WYSIWYG (What You See Is What You Get) что видишь, то и получишь. Чтобы установить в своем окне кнопку, нужно выбрать ее образец на поле инструментария, перетянуть в желаемое место на поле заготовки окна приложения и сбросить ее там и заменить надпись.

Краткая характеристика основных Windows-элементов управления, используемых для построения диалога:

надпись (static text) - по существу, это "неполноценный" элемент управления, поскольку он используется только как поле для вывода надписи, относящейся к "настоящему" элементу управления, расположенному рядом;

текстовое поле (edit box) - может быть однострочным или многострочным; сюда пользователь может ввести текст;

кнопка (button) - данный элемент предназначен для начала каких-либо действий после нажатия на неё;

флажок (check box) - используется для установки опций, каждая из которых может быть выбрана независимо от других;

переключатель-радиокнопка (radio button) - используется для выбора одной из групп связанных опций; если выбрана одна из них, то другие полагаются невыбранными;

список (list box) - используется для выбора одного элемента из заранее подготовленного набора; набор может быть как жестко установленным на этапе разработки программы, так и меняться программно в процессе выполнения приложения; главное - пользователь по своей воле не может непосредственно менять элементы в наборе, он может только их выбирать;

поле со списком (Combo box) - это комбинация текстового поля и списка; такой элемент управления позволяет пользователю не только выбирать элементы из ранее подготовленного набора, но и самостоятельно пополнять его, непосредственно внося необходимый текст в текстовое поле.

3. Задание идентификаторов диалогового окна и элементов управления. Создание класса диалогового окна. Ассоциированные переменные

Задание идентификаторов диалогового окна и элементов управления.

Поскольку каждое диалоговое окно в приложении является уникальным объектом, разработчику практически всегда нужно присваивать окнам и элементам управления, входящим в их состав, идентификаторы по собственному выбору. Конечно, можно согласиться и с теми идентификаторами, которые предлагает редактор диалоговых окон по умолчанию. Они не несут смысловой нагрузки (как правило, нечто вроде IDD_DIALOG1, IDC_EDIT1, IDC_RADI01) и их можно заменить другими, связанными с назначением и функциями окна или элемента. Но в любом случае рекомендуется соблюдать соглашение о префиксах: идентификаторы диалоговых окон имеют префикс IDD_, а идентификаторы элементов управления - IDC_. Заменить идентификатор можно с помощью диалогового окна Dialog Properties. Для этого выберите элемент управления или диалог и Edit Properties, если ранее окно Dialog Properties не было выведено и закреплено на экране. Затем измените идентификатор ресурса в поле ID, но при этом не забывайте о префиксах: IDD_- для диалоговых окон и IDC_ - для элементов управления.

Создание диалогового окна Dialog

Установите элементы управления на поверхности диалога. Для этого щелкните мышью на пиктограмме соответствующего элемента управления, а затем щелкните на форме в том месте, где будет расположен этот элемент. Если посчитаете нужным, "ухватитесь" указателем мыши за один из размерных маркеров вокруг изображения элемента. С помощью его передвижения можно изменять границы размеров элемента.

Добавьте элемент типа флажок и три переключателя в диалоговое окно, чтобы оно приняло вид …. В поле Caption измените надписи для переключателей. Пусть это будут One (один), Two (два) и Three (три). Чтобы выровнять включенные в окно элементы (выстроить их в колонку), выберите один из них, а затем, нажав и удерживая клавишу <Ctrl>, выберите по очереди остальные. После этого выберите в меню Lay-Out\Align Control Left, затем выберите команду Lay-Out\Space Evenly\Down (Размещение\Подравнять интервал\Вниз). Эта команда позволяет установить одинаковый интервал между элементами по вертикали.

Выберите переключатель One, вызовите окно Dialog Properties и установите в нем флажок Group (Группа). Такая установка означает, что переключатель One является первым элементом группы переключателей, т.е. именно к переключателям, объединенным в группу, будет в дальнейшем применяться принцип «только один прав».

Теперь добавьте в формируемое окно еще и элемент типа список. Установите его слева от переключателей и измените размеры. В то время, когда этот элемент еще остается выбранным, с помощью команды View=> Properties вызовите на экран окно Dialog Properties. Выберите вкладку Styles (Стили) и проверьте, не установлен ли флажок Sort (Сортировка). Если этот флажок установлен, то при выполнении программы элементы в списке будут отсортированы по алфавиту.

Создание класса диалогового окна.

Когда формирование ресурсов диалогового окна будет завершено, вызовите на экран диалоговое окно мастера ClassWizard. Для этого нужно выбрать View\ClassWizard. Мастер ClassWizard обнаружит новый диалог и предложит создать новый класс. Установите переключатель Create a new class (создать новый класс) и щелкните на ОК. Появится новое диалоговое окно New Class (новый класс). В поле Name (имя) введите имя нового класса (например, CSDIDialog) и щелкните на ОК. После этого ClassWizard создаст новый класс, подготовит файл текста программы SDIDialog.cpp и файл заголовка SDIDialog.h и включит их в состав проекта.

Создание ассоциированных переменных.

Ассоциированная переменная позволяет установить связь между текстом программы и ресурсами окна.

Ассоциированная переменная класса диалогового окна задается в ClassWizard на закладке Member Variables и соответствует либо значению - содержимому элемента управления, либо объекту класса соответствующего данному типу элемента управления. Пример демонстрирует один из вариантов ассоциативной связи. Элементу IDC_CHECK1 следует присвоить идентификатор переменной m_check. Нужно проверить, чтобы в раскрывающемся списке Category (Категория) было выбрано Value (Значение). Если вы раскроете список Variable type (Тип переменной), то увидите, что вам предоставлен единственный "свободный" выбор - BOOL. Флажок может быть либо установлен, либо сброшен, а значит, ассоциирован только с переменной типа BOOL, которая принимает только два значения - TRUE и FALSE. Нажмите на ОК для завершения процедуры.

Ниже перечислены типы переменных, которые могут быть ассоциированы с тем или иным типом элемента управления:

текстовые поля - как правило, строковый тип(CString), но иногда и другие - int, fIoat и Iong;

кнопки - int;

флажки - BOOL;

переключатели - int;

список - строковый тип;

поле со списком - строковый тип;

полоса прокрутки - int .

Свяжите таким же образом значение, которое содержится в элементе IDC_EDIT1, с членом-переменной m_edit типа CString. Элемент IDC_LIST1 должен быть связан с членом-переменной m_list, который должен быть объектом класса CListBox (в списке Category должно быть избрано Control). Первый переключатель в группе IDC_RADIO1 должен быть связан с членом-переменной m_radio типа int, причем связь должна быть установлена по значению.

После добавления переменных ClassWizard предложит установить параметры, которые могут быть использованы для проверки достоверности ввода данных. Это делается не для всех видов переменных. Но, например, если речь идет о переменной, связанной с текстовым полем, СlassWizard предлагает в поле Maximum Characters (Максимум символов) установить максимальную длину вводимой строки. Для члена-переменной m_edit установите значение этого параметра равным 10. Если текстовое поле ассоциировано с переменной типа int или float, ClassWIzard использует эту же часть окна для установки верхнего и нижнего пределов вводимого пользователем значения. В дальнейшем всю работу по проверке соответствия введенного значения установленным ограничениям и выдачу в случае их нарушения сообщения с просьбой повторить ввод берут на себя функции из библиотеки MFC.

4. Организация вывода диалогового окна на экран. Функция обмена данными между элементами управления и ассоциированными переменными. Иерархия вызовов функций при организации модального диалога

Использование класса диалогового окна

Теперь, когда сформирован ресурс и подготовлен класс окна, можно создавать объект этого класса в программе (методе InitInstance) и выводить на экран связанное с ним диалоговое окно. Выведем диалоговое окно сразу после запуска приложения. Для этого используется функция DoModal().

Организация вывода диалогового окна на экран.

Выберите вкладку ClassView в рабочей зоне проекта, раскройте пункт SDI Classes, а в нем - CSDIApp. Дважды щелкните на функции-члене InitInstance(). Эта функция вызывается при любом запуске приложения. Перейдите в самое начало файла и после уже имеющихся директив # inсlude вставьте еще одну:

#include "sdidialog.h"

Теперь при трансляции компилятор будет знать, где взять информацию о классе CSDIDialog. Перейдите в конец текста функции CSDIApp::Initlnstance() в файле SDI.CPP и добавьте перед окончанием текста функции следующие строки:

CSDIDialog dlg;

dlg.m_check = TRUE;

dlg.m_edit = "hi there";

CString msg;

if (dlg.DoModal() == IDOK) {

msg = "You сIicked OK. ";}

else

{

msg = "You clicked Cancel. ";

}

msg += "Edit Box is: ";

msg += dlg.m_edit;

AfxMessageBox(msg);

Приведенный выше фрагмент программы создает экземпляр класса диалогового окна. Он устанавливает параметры по умолчанию для двух элементов управления - флажка и текстового поля. Сам по себе вывод диалогового окна производится функцией DoModal(), которая возвращает числовое значение - IDOK, если пользователь вышел из окна, нажав на ОК, и IDCANCEL, если выход произошел после нажатия на Cancel. Затем в приведенном фрагменте формируется сообщение, которое выводится на экран функцией AfxMessageBox().

Запуск и компиляция приложения. Запустите процесс компиляции и компоновки проекта, выбрав команду Build=>Build или щелкнув на пиктограмме Build (Построить) панели инструментов Build. Запустите выполнение приложения, воспользовавшись командой Build\Execute (Построить\Выполнить) или щелкнув на пиктограмме Execute (Выполнить) панели инструментов Build. Вы увидите, что на экране появилось диалоговое окно с параметрами элементов управления, установленными по умолчанию в программе, которую вы только что отредактировали.

После загрузки созданного вами приложения поменяйте что-либо в текстовом поле (например, введите текст hello), а затем щелкните на ОК. После этого на экране должно появиться окно сообщения.

Снова запустите приложение, отредактируйте текст в поле и выйдите из окна, щелкнув на Cancel. Обратите внимание на сообщение, гласящее, что в поле остался исходный текст hello. Это получилось потому, что MFC не дублирует содержимое текстового поля (как элемента управления) в переменную-член в случае, если пользователь щелкает на Cancel для выхода из окна. И снова, как и в предыдущем эксперименте, закройте приложение.

После того, как вы щелкнете на ОК, приложение выведет в окне сообщения копию текста, введенного в текстовом поле. Надпись в окне глаит: В”You clicked OK. Edit Box Is: hello”.

Если вы щелкнете на Cancel, приложение проигнорирует любые изменения элементов управления. Надпись в окне гласит: “You clicked Cancel. Edit Box Is: hello”.

Как это происходит? Когда вы щелкнули на OK, MFC организовал вызов функции OnOK(). Функция OnOK() унаследована от базового класса CDialog, классом-наследником которого является наш диалог. Помимо прочего в нем находится функция DoDataExchange(), подготовленная средствами СlassWizard. Вот как она выглядит в настоящий момент:

void CSDIDialog::DoDataExchange(CDataExchange* pDX)

{CDialog::DoDataExchange(pDX);

//{{AFX_DATA_MAP(CSdiDiaIog)

DDX_Control(pDX, IDC_LIST1, m_list);

DDX_Check(pDX, IDC_CHECK1, m_check);

DDX_Text(pDX, IDC_EDIT1, m_edit);

DDV_MaxChars(pDX, m_edit, 10);

DDX_Radio(pDX, IDC_RADI01, m_radio);

//}}AFX_DATA_MAP }

Все функции, имена которых начинаются с DDX, выполняют обмен данными. Первым аргументом является указатель на объект класса CDataExchange, этот объект определяет параметры обмена, в том числе направление, в котором надо выполнить обмен данными. Вторым аргументом каждой функции является идентификатор элемента управления, а третьим - переменная класса. Именно таким образом СlassWizard устанавливает соответствие между элементами управления и членами класса диалогового окна - это СlassWizard подготовил такой текст программы вместо вас. СlassWizard также включил имена членов-переменных в файл заголовка, в котором объявляется структура класса.

Имеются 34 функции, их имена начинаются с DDX - одна на каждый тип данных, которыми могут обмениваться диалоговое окно и соответствующий класс. Каждая функция включает в свое имя также имя элемента управления. Например, функция DDX_Check() используется для связи между элементом типа флажок (check box) и членом-переменной типа BOOL. Аналогично DDX_Text() используется для связи члена-переменной типа CString с текстовым полем. СlassWizard выбирает соответствующую функцию в процессе выполнения описанной выше операции связывания членов класса с элементами управления. Существует несколько DDX-функций, за которые ClassWizard не несет ответственности. Например, если вы связываете список по значению с переменной, то единственным выбором для вас является тип CString. В этом случае ClassWizard формирует функцию DDX_LBString(), которая связывает выбранный в списке элемент с членом-переменной типа CString. Однако иногда эффективнее использовать индекс выбранного элемента, а не сам элемент. Для этого случая имеется функция DDX_LBIndex(), которая выполняет соответствующий обмен. Вызов этой функции можно добавить в текст функции-члена DoDataExchange. Соответствующая строка может быть вставлена в том месте программы, где имеется специальный комментарий, созданный ClassWizard. При этом не забудьте добавить соответствующую переменную-член в объявление класса в файле заголовка. Полный список DDX-функций можно найти в электронной документации.

Функции, имена которых начинаются с DDV, ответственны за проверку соблюдения заданных ограничений на вводимые данные. ClassWizard вставляет вызов DDV_MaxChars() сразу за вызовом DDX_Text, которая передает содержимое текстового поля IDC_EDIT1 в переменную m_edit. Второй аргумент вызова функции - идентификатор переменной-члена, а третий - значение параметра, ограничивающего длину вводимой строки. Если пользователь когда-нибудь при работе с программой попытается ввести символов больше, чем дозволено, то DDV_MaxChars() организует вывод на экран предупреждающего сообщения. Так что вы можете только указать величину ограничения и рассчитывать, что все дальнейшее будет организовано СlassWizard и MFC.

Приложение не должно напрямую вызывать метод DoDataExhange. Он вызывается через метод UpdateData, определенный в классе CWnd. Необязательный параметр этой функции определяет, как будет происходить обмен данными.

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

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

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

При создании модальной диалоговой панели перед тем, как панель появится на экране, вызывается виртуальный метод OnInitDialog класса CDialog. По умолчанию OnInitDialog вызывает метод UpdateData и выполняет инициализацию органов управления.

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

Метод UpdateData также вызывается некоторыми другими методами класса CDialog. Так, метод UpdateData вызывается, когда пользователь закрывает модальную диалоговую панель, нажимает кнопку "Ok".

Заметим, что кнопка "Ok" должна иметь идентификатор IDOK. Если пользователь нажмет на кнопку "Cancel", имеющую идентификатор IDCANCEL, то диалоговая панель также закрывается, но метод UpdateData не вызывается и обмен данными не происходит.

Методу DoDataExchange, который служит для реализации механизмов автоматического обмена данными, передается указатель pDX на объект класса CDataExchange. Этот объект создается, когда инициируется процесс обмена данными вызовом функции UpdateData.

Элементы данных класса CDataExchange определяют процедуру обмена данными, в том числе определяют, в каком направлении будет происходить этот обмен. Следует обратить внимание на то, что указатель pDX передается функциям DDX_ и DDV_.

Замечание. Если к диалоговой панели добавить новые органы управления и связать их средствами ClassWizard с элементами данных класса CDlg, то в блоке AFX_DATA_MAP будут размещены вызовы и других функций DDX и DDV, необходимые для выполнения обмена данными.

5. Использование элемента управления типа «список». Стили окон списков. Сообщения от элемента управления типа «список» (LBN_). Некоторые методы класса CListBox

Использование элемента управления типа список

Работать со списками сложнее, поскольку реальным объектом список становится тогда, когда диалоговое окно уже выведено на экран. Нельзя вызывать функции-члены списка до тех пор, пока не будет порожден экземпляр класса диалогового окна. Таким образом, инициализировать список - заполнить его элементами-строками - и анализировать, какая строка выбрана, можно только на том участке программы, который выполняется во время присутствия диалогового окна на экране.

Когда наступает время инициализировать диалоговое окно, перед выводом его на экран, вызывается функция-член класса CDialog OnInitDialog(). Для того, чтобы включить эту функцию в члены класса CsdiDialog необходимо воспользоваться услугами ClassWizard.

В окне ClassView щелкнуть правой кнопкой на CsdiDialog и в контекстном меню выбрать команду Add Windows Message Handler (Добавить обработчик сообщений Windows). На экране появится окно New Message and Event Handlers. В списке New Windows Messages/Events выбрать WM_INITDIALOG и щелкнуть на кнопке Add Handler. Идентификатор сообщений исчезнет из списка в левой части окна и появится в списке Existing Messages/Event Handlers в правой части. Щелкнуть на нем и затем щелкнуть на кнопке EditExisting с тем, чтобы увидеть текст программы.

BOOL CsdiDialog:: OnInitDialog()

{ CDialog::OnInitDialog();

m_listbox.AddString(“First String”);

m_listbox.AddString(“Second String”);

m_listbox.AddString(“Third String”);

m_listbox.AddString(“Fourth String”);

m_listbox.SetCurSel(2);

m_radio=1;

UpdateData(FALSE);

return TRUE; //Возвращает TRUE , если только вы не //установили фокус ввода на элемент //управления

Работы этого фрагмента начинается с вызова той версии функции OnInitDialog(), которая принадлежит базовому классу СDialog. Она выполнит все фоновые операции, предусмотренные в MFC, для инициализации диалогового окна. Затем вызывается функция член AddString , которая добавляет в список элементы. Функция SetCurSel устанавливает начальный фокус выбора в списке. Индекс начинается с нуля.

Для того чтобы организовать вывод в окне сообщения информации о выбранном из списка элементе, нужно также включить специальный член-переменную в класс диалогового окна. В эту переменную при закрытии окна будет записываться значение, к которому затем можно обратиться, несмотря на то, что окно уже закрыто. В окне ClassView правой кнопкой на CsdiDialog и выбрать Add Member Variable. Заполните реквизиты: имя - m_selected; тип - Cstring и щелкните OK. Описание переменной появится в файле заголовка класса диалогового окна. Если планируется, что список должен поддерживать многозначный выбор, то тип введенной переменной будет CstringArray, т.е. эта переменная будет содержать массив выбранных переменных. Член- переменную вообще говоря следует объявлять закрытой (private), а функции доступа к ней открытыми (public). В примере для упрощения объявим public. Эта новая переменная будет хранить выбранный пользователем элемент списка. Запись в нее будет производиться тогда, когда пользователь щелкает на OK или CANCEL.

Для того, чтобы добавить функцию, которая будет вызываться после щелчка OK, нужно выполнить следующее.

В окне ClassView щелкнуть правой кнопкой на CsdiDialog и в контекстном меню выбрать команду Add Windows Message Handler (Добавить обработчик сообщений Windows).

В окне New Message and Event Handlers выбрать в списке Class or object to handle IDOK.

В левом списке New Windows Messages/Events выбрать BN_CLICKED. Этим вы выбираете функцию для обработки однократного щелчка на кнопке OK.

щелкнуть на кнопке Add Handler, появится диалоговое окно Add Member Function.

Согласитесь с предложенным именем OnOK(), для чего щелкните на OK.

Щелкните на кнопке EditExisting, появится текст программы. Вставьте в него несколько строк.

Стили окон списков

В окна списка почти всегда включают идентификатор стиля LBS_NOTIFY, что позволяет родительскому окну получать от окна списка сообщение WM_COMMAND.

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

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

По умолчанию, оконная процедура окна списка выводит только список элементов без какой-либо рамки вокруг. Рамку можно добавить с помощью стиля WS_BORDER.

Для прокрутки содержимого с помощью мыши и вертикальной полосы прокрутки следует использовать стиль WS_VSCROLL.

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

(LBS_NOTIFY|LBS_SORT|WS_VSCROLL|WS_BORDER)

Замечание. Также можно пользоваться стилями WS_SIZEBOX и WS_CAPTION, которые дают возможность менять размер окна и перемещать его по рабочей области родительского окна.

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

Когда Вы работаете со списком, вырабатываются уведомляющие сообщения (notification) от списка. Вы можете посмотреть все сообщения, которые можете обрабатывать в Message Map, если выберите IDC_list1 списка.

LBN_ERRSPACE - превышен размер памяти, отведенный для списка

LBN_SELCHANGE - изменен текущий выбор (подсветка перемещается по списку);

LBN_DBLCLK - на пункте списка имел место двойной щелчок мышью.

Замечание. Окно списка посылает коды уведомления LBN_SELCHANGE и LBN_DBLCLK только в том случае, если в стиль дочернего окна включен идентификатор LBS_NOTIFY.

LBN_KILLFOCUS - Потеря фокуса

LBN_SELCANCEL - Выбор с элемента снимается

LBN_SETFOCUS - Получение фокуса

Некоторые методы класса CListBox

Метод для очистки содержимое списка, делает его пустым:

void ResetContent();

Метод для добавления элемента в список:

int AddString( LPCSTR lpszItem);

Добавляет строку lpszItem в список и cортирует его, если при создании включено свойство Sort. В противном случае элемент добавляется в конец списка.

Метод для удаления элемента из списка:

int DeleteString( UINT nIndex);

Удаляет из списка элемент с индексом nIndex. Индексация элементов начинается с 0.

Метод для получения индекса элемента, выбранного пользователем:

int GetCurSel() const;

Метод для программной установки отмеченного элемента списка:

int SetCurSel( int nSelect);

Отмечает элемент с индексом nSelect как выбранный элемент списка. Если значение параметра равно -1, список не будет содержать отмеченных элементов.

Методы для копирования содержания определенного элемента в буфер:

int GetText( int nIndex, LPSTR lpszBuffer) const;

или

void GetText( int nIndex, CString& rString) const;

Копирует элемент с индексом nIndex в буфер.

Метод для организации прокрутки списка в окне так, чтобы элемент с индексом nIndex был видимым:

int SetTopIndex( int nIndex);

Метод для организации поиска в списке:

int FindString( int nStartAfter, LPCSTR lpszItem) const;

Организует поиск в списке и возвращает в качестве результата индекс элемента списка, префикс которого совпадает со строкой lpszItem. Результат не зависит от регистра, в котором набирались символы сравниваемых строк.

Параметр nStartAfter задает начало поиска, но поиск идет по всему списку. Он начинается от элемента, следующего за nStartAfter, до конца списка и затем продолжается от начала списка до элемента с индексом nStartAfter. В качестве результата выдается первый найденный элемент, удовлетворяющий условиям поиска. Если такого нет, результат получает значение LB_ERR.

Этот метод отличается от предыдущего тем, что теперь не префикс элемента должен совпадать со строкой lpszFind, а сам текст элемента:

int FindStringExact( int nIndexStart, LPCSTR lpszFind) const;

Поиск по-прежнему не чувствителен к регистру, в котором набираются символы.

6. Комбинированные списки (класс CCombobox). Стили окон комбинированных списков. Сообщения от элемента управления типа «комбинированный список» (CBN) Некоторые методы класса CCombobox

Комбинированные списки (класс CCombobox)

Этот класс является комбинацией списка и однострочного редактора, поэтому для комбинированного списка используются стили, коды извещения и сообщения, аналогичные списку ”CListbox”, а также некоторые сообщения, специфические для редактора текста класса “CEdit”.

При создании списка “CCombobox” указываются специальные стили комбинированного списка, символические имена которых имеют префикс CBS_.

Рассмотрим базовые стили комбинированного списка

Среди всех стилей комбинированного списка можно выделить три базовых:

Рассмотрим стили Combo box, которые задаются при его создании в меню PROPERTIES

Style

When is list box visible?

Static or edit control?

Simple

Always

Edit

Drop-down

When dropped down

Edit

Drop-list

When dropped down

Static

По умолчанию предлагается Simple. В этом случае список постоянно отображен на экране. В поле ввода, располагающемся сверху, можно вводить любые данные. С помощью мыши можно выделять элемент в прикрепленном окне списка и он будет попадать в поле редактирования. Кроме того, если в поле редактирования набрать символы, совпадающие с начальными символами некоторых элементов списка, эти элементы станут первыми в списке.

Стиль Dropdown (раскрывающийся). В поле ввода (edit control), можно вводить любые данные, а щелкнув на стрелку - раскрыть окно списка и выбрать в нем любой элемент. Отмеченный элемент отображается в поле редактирования. Если в поле редактирования набрать символы, совпадающие с начальными символами некоторых элементов списка, эти элементы станут первыми в списке.

Стиль Droplist (раскрывающийся). В этом комбинированном списке пользователь сможет выбирать элементы только из раскрывающегося списка. Для этого он, щелкнув стрелку, укажет нужную строку или введет первую букву из выделенной строки.

Combo box можно инициализировать в окне Properties. На вкладке Data есть окно Enter Listbox Items. Каждую строку в нем следует заканчивать Ctrl+Enter.

List box можно инициализировать только когда начинается диалог, в функции OnInitDialog, которая увязана с сообщением WM_INITDIALOG, класса CSDIDialog.

Рассмотрим сообщения от комбинированного списка, посылаемые родительскому окну

Коды извещения для комбинированного списка имеют символические имена с префиксом CBN_.

Рассмотрим сообщения, посылаемые родительским окном комбинированным спискам

Для управления списком “combobox” используется набор сообщений, аналогичный набору сообщений для списка “CListbox” и редактора текста “CEdit”.

В файле windows.h определены сообщения, специально предназначенные для работы со списком “combobox”. Символические имена этих сообщений имеют префикс CB_.

Многие методы Combo box и List box совпадают. В Combo box нет методов, связанных с множественным выбором.

Дополнительные методы, связанные с полем редактирования.

DWORD GetEditSel( ) const;

Получает начальную и конечную позиции в текущей отметке строки в поле редактирования.

Возвращает двойное слово. Начальная позиция (номер символа) содержится в младшем (low-order) слове, конечная позиция (первый невыделенный символ) - в старшем (high-order) слове. Если Combo box используется без поля редактирования, выдается CB_ERR.

Пример:

DWORD dwCurSel = m_combobox.GetEditSel();

WORD dStart = LOWORD(dwCurSel);

WORD dEnd = HIWORD(dwCurSel);

BOOL SetEditSel( int nStartChar, int nEndChar );

Отмечает символы в поле редактирования. Чтобы выбрать первую позицию, вы должны указать начальную позицию (nStartChar) 0. Чтобы отметить до четвертой позиции включительно, вы должны указать номер первой позиции, следующей за отмеченной nEndChar=4.

nStartChar - означает начальную позицию отметки (счет с нуля). Если она равна -1, удалить существующую отметку.

nEndChar - означает конечную позицию (номер первого символа за отмеченным). Если она равна -1, Помечается весь текст.

Возвращает CB_ERR, если ComboBox имеет стиль DROPDOWNLIST.

Пример:

if (dwCurSel != CB_ERR)

m_combobox.SetEditSel(dStart, dEnd);

CWnd::GetWindowText

int GetWindowText( LPTSTR lpszStringBuf, int nMaxCount ) const;

void GetWindowText( CString& rString ) const;

Копирует заголовок окна в буфер (lpszStringBuf) или строку (rString). Если окно является control (в нашем случае полем редактирования), копирует текст из поля редактирования.

Возвращает длину строки в байтах, не включая символ конца. Возвращает 0, если нет текста.

nMaxCount означает максимальное количество символов, которое может быть скопировано в буфер. Если строка длиннее, она обрезается.

CString str;

GetWindowText(str);

int nLength = str.GetLength();

void SetWindowText( LPCTSTR lpszString );

Копирует строку (lpszString) в заголовок окна. Если окно является control (в нашем случае полем редактирования), копирует строку в поле редактирования.

lpszString - указатель на строку.

SetWindowText(str);

int GetLBText( int nIndex, LPTSTR lpszText ) const;

void GetLBText( int nIndex, CString& rString ) const;

Получает строку из Listbox.

nIndex означает индекс строки, если индекс меньше нуля, или больше предельного значения возвращается CB_ERR.

lpszText означает указатель на буфер, который должен получить строку. Буфер должен иметь достаточно места и иметь символ конца строки. Размер строки должен быть определен заранее с помощью метода GetTextLen.

rString - Ссылка на объект класса CString.

Возвращает длину строки в байтах включая символ конца строки. Возвращает ошибку LB_ERR, если возникает ошибка в индексе.

int SetItemData( int nIndex, DWORD dwItemData );

устанавливает 32-разрядное значение связанное с выбранным элементом

nIndex означает индекс элемента, который должен быть установлен,

dwItemData означает новое значение элемента.

DWORD GetItemData( int nIndex ) const;

Извлекает 32-разрядное значение связанное с выбранным элементом nIndex означает индекс элемента в списке.

Список может получать:

ON_WM_CHARTOITEM - Обработчик сообщения для списков не имеющих строковых элементов получает сообщение WM_CHAR.

ON_WM_VKEYTOITEM - Уведомление о нажатии кнопки

VK_SHIFT, VK_CONTROL, VK_ ALT и т.д.

VK_DOWN)

VK_UP, VK_RIGHT, VK_LEFT, VK_ESCAPE, VK_RETURN,

VK_SPACE VK_DELETE , VK_BACK

7.Использование элементов типа переключатель (флажки, радио-кнопки). Статические поля (Static text). Окна редактирования (Edit box). Методы класса CEdit

Использование элементов типа переключатель.

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

Для выбора одного из переключателей в группе диалогового окна необходимо добавить следующий текст в функцию CSDIDialog::0nInitDialog():

m_radio = 1;

UpdateData(FALSE);

Членом-переменной является m_radio, с которым связана группа переключателей. Она (переменная) представляет собой индекс выбранного переключателя в этой группе элементов управления (как всегда, индекс начинается с 0). Значение индекса 1 соответствует второму переключателю в группе. Вызов функции UpdateData() в этом фрагменте обновляет содержимое элементов управления диалогового окна соответственно состоянию связанных с ними переменных-членов. Аргумент функции UpdateData() указывает направление передачи данных: UpdateData(TRUE) обновило бы содержимое переменных соответственно элементам управления, т.е. переписало бы в m_radio индекс выбранного в группе переключателя.

В отличие от списка группа переключателей доступна и после того, как диалоговое окно убрано с экрана. Так что вам не придется добавлять что-либо в функции ОnОК() и OnCanceI(). Вместо этого у вас будет другая проблема - как преобразовать целое значение индекса в строковое выражение, которое нужно будет добавить в "хвост" текста сообщения в переменную msg. Существует множество ее решений, включая функцию-член Format() класса CString, но в данном случае можно поступить гораздо проще - использовать оператор switch, поскольку индекс может принимать лишь ограниченное множество значений. В конец текста функции CSDIApp::InitInstance(), перед вызовом AfxMessageBox(), добавьте несколько строк, представленных в листинге.

Строки, которые следует включить в функцию CSDIApp::InitInstance():

msg += "\г\п";

msg += "Radio Selection: ";

switch (dig.m_radio)

{case 0:

msg += "O";

break;

case 1:

msg += "1";

break;

case 2:

msg += "2";

break;

default:

msg += "none";

break;}

Первая из новых строк добавляет в сообщение два специальных символа - перевод каретки \r и перевод строки \n, которые в совокупности представляют маркер конца строки Windows. В результате дальнейшая часть сообщения msg начнется с новой строки.

"Статические поля (класс static)"

Статическое окно управления - это окно, создаваемое на базе класса ”CStatic”.Статические окна нельзя использовать для управления работой приложения: они не воспринимают щелчки мыши и не обрабатывают сообщения от клавиатуры, не посылает родительскому окну сообщение WM_COMMAND. Обычно этот орган управления используется для оформления внешнего вида диалоговых панелей или окон приложения. Все сообщения от мыши через “прозрачное” окно статического дочернего окна попадают в родительское окно.

Рассмотрим некоторые стили статического окна

Статический класс окон включает в себя три стиля текста - SS_LEFT, SS_RIGHT и SS_CENTER. Они предназначены для выравнивания текста соответственно по левому краю, правому краю и центру. Текст задается в параметре текста окна функции SetWindowText.

Класс CEdit

Класс CEdit обеспечивает функционирование элемента управления «окно редактирования» (Edit box). Окно редактирования - это окно, в котором пользователь может вводить и редактировать текст.

CEdit наследует методы от CWnd. Чтобы установить или получить текст из окна CEdit можно пользоваться методами CWnd SetWindowText и GetWindowText. Даже в случае многострочного окна. А также, если окно многострочное, получать или устанавливать часть текста путем вызова методов GetLine, SetSel, GetSel, ReplaceSel.

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

Список возможных сообщений от CEdit:

EN_CHANGE содержимое окна будет меняться. Так же как и EN_UPDATE сообщение посылается после того, как Windows обновит экран.

EN_ERRSPACE - поле редактирования не имеет достаточно памяти.

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

EN_KILLFOCUS - окно редактирования потеряло фокус ввода.

EN_MAXTEXT - Текущая вставка превысила заданное число символов для окна редактирования и будет урезана. Также посылается , когда окно редактирования на имеет стиля ES_AUTOHSCROLL и число символов, которое должно быть вставлено превысит ширину окна. Также посылается, когда окно не имеет стиля ES_AUTOVSCROLL и общее число строк будет превышать высоту окна редактирования.

EN_SETFOCUS - посылается, когда окно редактирования получает входной фокус.

EN_UPDATE - содержимое окна изменилось. Посылается после того, как окно отформатировало текст, но перед тем, как изобразить его на экране, так что размер окна может быть изменен, если необходимо.

EN_VSCROLL - - на вертикальной полосе прокрутки был щелчок мышью. Родительское окно извещается прежде, чем экран изменится.

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

Управляющие окна редактирования хранят текст в области памяти программы (в адресном пространстве программы). Содержимое управляющих полей редактирования ограничено примерно 32 килобайтами.

Рассмотрим стили окон редактирования

Текст в управляющих окнах редактирования может быть выравнен либо по правому краю, либо по правому, либо по центру. Формат можно задать с помощью стилей окна ES_LEFT, ES_RIGHT и ES_CENTER.

По умолчанию в управляющем окне редактирования имеется одна строка. Для создания такого окна с автоматической горизонтальной прокруткой следует добавить стиль ES_AUTOHSCROLL.

Приложение может создать многострочное управляющее окно редактирования, используя стиль окна ES_MULTILINE. Для многострочного окна редактирования, если не задан стиль ES_AUTOHSCROLL, то текст автоматически переносится на новую строку при достижении правого края окна.

...

Подобные документы

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

    учебное пособие [2,1 M], добавлен 27.04.2011

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

    дипломная работа [645,3 K], добавлен 21.11.2010

  • Средства и технологии разработки приложений баз данных. Компоненты управления доступом к БД. Описание программного окружения доступа к данным. Механизм получения и отправки данных. Специфика связи внутреннего представления с интерфейсом приложения.

    презентация [29,4 K], добавлен 19.08.2013

  • Web-дизайн, web-страница, основы строения сайта. Текстовые редакторы для разработки Web приложений. Стандартные средства разработки для Unix систем. Профессиональные среды разработки и их ответвления. Визуальные редакторы для разработчиков Web.

    курсовая работа [1,4 M], добавлен 12.08.2015

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

    контрольная работа [76,4 K], добавлен 08.07.2014

  • Структурные подразделения и отделы организации, ее технические программные средства. Разработка приложений обработки данных на ассемблере, языке программирования высокого уровня. Тестирование и оптимизация программных модулей. Разработка документации.

    отчет по практике [175,0 K], добавлен 30.09.2022

  • Вопросы программирования в Maple версий 6-11 и разработка приложений. Рассматривает эффективные приемы программирования и разработки приложений для многих разделов техники, математики, физики, для решения которых пакет не имеет стандартных средств.

    монография [4,8 M], добавлен 13.03.2008

  • Преимущества операционной системы Android. Проектирование интерфейса приложений. Визуальные редакторы и средства кроссплатформенной разработки. Оптимизация игрового процесса, выбор фреймворка и библиотек. Классификация и характеристика игр по жанрам.

    дипломная работа [2,6 M], добавлен 10.07.2017

  • Сущность языков разметки и этапы проектирования. Общая характеристика бесплатных приложений для работы с кодом в текстовом формате. Особенности визуальных редакторов и суть платных приложений. Стандартные средства разработки для Unix систем и их замена.

    курсовая работа [49,6 K], добавлен 04.06.2013

  • Архитектура операционной системы Android, набор библиотек для обеспечения базового функционала приложений и виртуальная машина Dalvik. Объектно-ориентированный язык программирования Java как инструмент разработки мобильных приложений для ОС Android.

    дипломная работа [1,6 M], добавлен 08.07.2015

  • Разработка критериев оценки экрана веб-приложений. Основные подходы к защите веб-приложений. Анализ российских нормативных документов. Зарубежная практика выбора экрана веб-приложений. Разработка и обоснование общих требований к механизмам защиты.

    дипломная работа [68,7 K], добавлен 04.08.2016

  • Разработка приложений на платформе Win32 для исследования взаимодействия между процессами через отображение файла в память. Модель приложений "клиент - сервер". Описание алгоритма работы программы-клиента и программы-сервера. Результаты работы приложений.

    курсовая работа [869,3 K], добавлен 18.05.2014

  • Жизненный цикл программного продукта. Современные среды разработки приложений. Защита информации в базах данных. Особенности разработки приложения с помощью среды Delphi 7. Проверка программного модуля на предмет соответствия стандартам кодирования.

    отчет по практике [589,0 K], добавлен 18.05.2017

  • Приложение для организации и контроля разработки программного обеспечения, сокращающее сроки проектирования программных продуктов и оптимизирующее данный процесс. Технологии создания приложений на платформе .NET. Алгоритм получения и обновления списка.

    дипломная работа [861,9 K], добавлен 27.11.2014

  • Проектирование системы управления базами данных. Особенности реализации в MS SQL. Разработка пользовательского интерфейса. Тестирование и отладка приложения. Руководство пользователя и системного администратора. Анализ и методы разработки приложений.

    курсовая работа [867,9 K], добавлен 16.07.2013

  • Средства разработки, ориентированные на конкретные СУБД. Наиболее известные приложения на основе Eclipse Platform. Проект NetBeans IDE, его возможности. KDevelop — свободная интегрированная среда разработки для UNIX-подобных операционных систем.

    реферат [107,5 K], добавлен 14.04.2014

  • Преимущество построения Web-приложений для поддержки стандартных функций браузера. Настройка проекта Web-приложения. Создание и изменение исходных файлов. Изменение файла JavaServer Pages по умолчанию. Основные проблемы при выполнении Web-приложений.

    контрольная работа [362,8 K], добавлен 10.11.2013

  • Подходы и алгоритмы автоматизации тестирования. Анализ специфики работы с локальными и веб-приложениями, внедрение автоматических тестов в процесс контроля качества приложений Global XB, GCube и Thistle. Оптимальный инструмент разработки скриптов.

    дипломная работа [1,5 M], добавлен 15.01.2012

  • Знакомство с этапами разработки трёх приложений для системы семейства Linux с использованием языка программирования С++. Анализ особенностей операционной системы Ubuntu 12.10. Характеристика способов тестирования команд с помощью стандартных средств.

    контрольная работа [732,1 K], добавлен 06.08.2013

  • Основные принципы написания оконных приложений с графическим интерфейсом на языке Java в среде Eclipse. Управление компоновками компонентов: показ диалоговых окон, вывод графической информации. Структура приложения и размещение элементов интерфейса.

    лабораторная работа [1,1 M], добавлен 01.05.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.