Объекты - потомки TGraphControl
Рассматривается действующий демо-фрагмент программы, в которой применяются классы -
потомки от TGraphicControl. Программа предназначена для расчета стержневых конструкций (строительное проектирование).
Демо-фрагмент - это работоспособный фрагмент программы, демонстрирующий использование классов - потомков от TGraphicControl.
Благодаря этим классам программа может выполнять следующее (цитата из руководства к программе):
При просмотре расчетной схемы или эпюр можно буксировать графические элементы (опоры, нагрузки, значения, номера узлов и т п), прятать их, делать прозрачными/непрозрачными . Двойной щелчок на шарнирной опоре меняет ее направление (если не получается – отодвиньте мешающий объект). Высоту ординат на эпюрах можно настраивать (Настройка | Высота эпюр), щелкнуть кнопку «Применить настройки». Если картинка не помещается на экране и прокрутка не помогает, можно увеличить размеры экрана.
Рассмотрим коротко работу объектов TGraphicControl в этой программе:
- При создании главной формы (TForm1.FormCreate) задаются размеры клиентской части формы и свойства полос прокрутки. Форма может иметь весьма большие размеры. Также задается имя файла справки.
- Далее пользователь может выбрать файл данных (используя меню). Вычисляются параметры линейного отображений расчетной схемы на форму.
- Создаются массивы объектов классов: TElem (элементы структуры конструкции), TNum (показывает номера узлов), TSila (показывает приложенную нагрузку: силы и пары сил), TOpora (показывает закрепление конструкции), TZnacenie (показывает подписи - значения величин). Все эти классы - потомки TGraphicControl. Их описание смотри в модуле UnKlass. Объекты создаются в процедурах CreateNumbers, CreateSila, CreateOpora, CreateElems, CreateZnaki (см. модуль Podmoga)
- При изменении картинки (масштабирование, перетаскивание, прятании и т п) используются процедуры MoveNumbers, MoveSila, MoveElems, MoveZnaki, MoveOpora. Для освобождения объектов - FreeNumbers, FreeSila и т п (см. модуль Podmoga). Для буксировки объектов каждый класс имеет обработчики property OnMouseDown; property OnMouseMove; property OnMouseUp; (см. модуль UnKlass)
- Видимостью и прозрачностью объектов можно управлять из формы "Настройка" (модуль UnNastroi)
Скачать RAR-архив исходников + .exe(900 Кб)