В Камаев - Технологии программирования
- Название:Технологии программирования
- Автор:
- Жанр:
- Издательство:Издательство «Высшая школа»
- Год:2006
- Город:Москва
- ISBN:5-06-004870-5
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
В Камаев - Технологии программирования краткое содержание
Второе издание (1-е — 2005 г.) дополнено главами по структуре данных и основам инженерии создания программ.
Для студентов вузов, обучающихся по направлению «Информатика».
Технологии программирования - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
— TButton — обыкновенная кнопка;
— TRadioButton — радиокнопка (группа кнопок с зависимой фиксацией, обеспечивающей возможность выбора лишь одной кнопки из группы);
— TListBox — обычный список;
— TDBListBox — список для работы с таблицами данных;
— TDataSource — источник данных (является посредником между элементами DataAccess: Table, Query, — и органами управления базами данных DataControls: DBGrid, DBEdit и т. п.).
Попытаемся в общих чертах прокомментировать данную иерархию и обосновать ее на основе метода распределения обязанностей. Ниже приведен набор обязанностей для перечисленных компонентов.
Обязанности объектов класса TDataSource:
— контролировать доступ пользователя к элементам TDataSet;
— обеспечивать возможность определения, подключен ли TDataSource к некоторому элементу TDataSet;
— обеспечивать возможность работы с дочерними компонентами;
— обеспечивать возможность копирования данных в другой объект того же класса;
— обеспечивать возможность уничтожения объекта с высвобождением памяти;
— обеспечивать возможность посылать сообщения;
— определять имя класса, объектом которого является данный элемент.
Обязанности объектов класса TButton:
— обрабатывать сообщения WMLBUTTONDOWN и WMLBUTTONDBLCLK (нажатие и двойное нажатие левой кнопки мыши);
— программно эмулировать нажатие кнопки;
— обрабатывать сообщения от клавиатуры;
— получать фокус ввода;
— определять, имеется ли фокус ввода;
— определять, может ли объект иметь фокус ввода (например, если элемент невидим, ему нельзя передать фокус ввода);
— обрабатывать сообщение BMCLICK (происходит после нажатия кнопки мыши);
— становиться видимым и невидимым;
— перерисовываться;
— обеспечивать возможность перевода точки из системы координат окна в систему координат экрана;
— хранить идентификатор родителя (с возможностью изменить родителя);
— обеспечивать возможность работы с дочерними компонентами;
— обеспечивать возможность копирования данных в другой объект того же класса;
— обеспечивать возможность уничтожения объекта с высвобождением памяти;
— обеспечивать возможность посылать сообщения;
— определять имя класса, объектом которого является данный элемент.
Обязанности объектов класса TRadioButton:
— обрабатывать сообщения WMLBUTTONDOWN и WMLBUTTONDBLCLK (нажатие и двойное нажатие левой кнопки мыши);
— определять, какая выбрана кнопка из группы кнопок;
— обрабатывать сообщения от клавиатуры;
— получать фокус ввода;
— определять, имеется ли фокус ввода;
— определять, может ли объект иметь фокус ввода (например, если элемент невидим, ему нельзя передать фокус ввода);
— обрабатывать сообщение BMCLICK. (происходит после нажатия кнопки мыши);
— становиться видимым и невидимым;
— перерисовываться;
— обеспечивать возможность перевода точки из системы координат окна в систему координат экрана;
— хранить идентификатор родителя (с возможностью изменить родителя);
— обеспечивать возможность работы с дочерними компонентами;
— обеспечивать возможность копирования данных в другой объект того же класса;
— обеспечивать возможность уничтожения объекта с высвобождением памяти;
— обеспечивать возможность посылать сообщения;
— определять имя класса, объектом которого является данный элемент.
Обязанности объектов класса TListBox:
— очищать список;
— обеспечивать возможность нахождения нескольких элементов из списка;
— определять номер элемента списка по координатам точки, принадлежащей объекту класса TListBox;
— обрабатывать сообщения от клавиатуры;
— получать фокус ввода;
— определять, имеется ли фокус ввода;
— определять, может ли объект иметь фокус ввода (например, если элемент невидим, ему нельзя передать фокус ввода);
— обрабатывать сообщение BM_CLICK (происходит после нажатия кнопки мыши);
— становиться видимым и невидимым;
— перерисовываться;
— обеспечивать возможность перевода точки из системы координат окна в систему координат экрана;
— хранить идентификатор родителя (с возможностью изменить родителя);
— обеспечивать возможность работы с дочерними компонентами;
— обеспечивать возможность копирования данных в другой объект того же класса;
— обеспечивать возможность уничтожения объекта с высвобождением памяти;
— обеспечивать возможность посылать сообщения;
— определять имя класса, объектом которого является данный элемент.
Обязанности объектов класса TDBListBox:
— обеспечивать связь с источником данных (TDataSource);
— очищать список;
— обеспечивать возможность вывода нескольких элементов из списка;
— определять номер элемента списка по координатам точки, принадлежащей объекту класса TDBListBox;
— обрабатывать сообщения от клавиатуры;
— получать фокус ввода;
— определять, имеется ли фокус ввода;
— определять, может ли объект иметь фокус ввода (например, если элемент невидим, ему нельзя передать фокус ввода);
— обрабатывать сообщение BMCLICK (происходит после нажатия кнопки мыши);
— становиться видимым и невидимым;
— перерисовываться;
— обеспечивать возможность перевода точки из системы координат окна в систему координат экрана;
— хранить идентификатор родителя (с возможностью изменить родителя);
— обеспечивать возможность работы с дочерними компонентами;
— обеспечивать возможность копирования данных в другой объект того же класса;
— обеспечивать возможность уничтожения объекта с высвобождением памяти;
— обеспечивать возможность посылать сообщения;
— определять имя класса, объектом которого является данный элемент.
При внимательном рассмотрении обязанностей, вменяемых объектам перечисленных классов, можно заметить, что некоторые из них совпадают, т. е. оказываются общими для объектов разных классов. Следует также отметить, что некоторые из обязанностей являются общими для объектов всех классов, а некоторые — лишь для ограниченного набора.
Логично было бы ввести дополнительные классы, объекты которых имели бы общие для рассмотренных классов обязанности. Тогда рассмотренные классы (TDataSource, TButton, TRadioButton, TListBox, TDBListBox) могли бы унаследовать функции, обеспечивающие выполнение этих обязанностей у введенных дополнительных классов (в объектно-ориентированном программировании имеется механизм, который так и называется — механизм наследования, — который делает доступными из дочерних классов свойства и методы, с учетом прав доступа, разумеется, из родительских (или базовых) классов).
Попытаемся выделить упомянутые классы и назначить им их обязанности:
Читать дальшеИнтервал:
Закладка: