$167.80


$61.54


$65.74


Разработка SDI и MDI приложений

Чтобы использовать шаблон mdi application, примените команду file/new меню delphi, из раскрывшегося диалогового окна выберите страницу projects, а затем mdi application. Определите каталог для проекта, и delphi произведет копирование файлов, которые вам необходимы для простого приложения mdi с инструментальной линейкой, строкой состояния и меню. При формировании этих составных частей шаблона будут производиться запросы.

На полученной форме размещены следующие компоненты: op endialog, imagelist, actionlist.

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

uses childwin, about;

procedure tmain form.createmdi child(const name: string);
var
child: tmdichild;
begin
{ create a new mdi child window }
child:= tmdichild.create(application);
child.caption:= name;
if fileexists(name) then child. memo1.lines.loadfromfile(name);
end;

procedure tmain form.filenew1execute(s ender: tobject);
begin
createmdichild(«noname» + inttostr(mdichildcount + 1));
end;

procedure tmain form.fileopen1execute(s ender: tobject);
begin
if op endialog.execute then
createmdichild(op endialog. filename);
end;

procedure tmain form.helpabout1 execute(s ender: tobject);
begin
aboutbox.showmodal;
end;

procedure tmain form.fileexit1execute(s ender: tobject);
begin
close;
end;

end.

Программный код для дочерней формы:
implementation

{$r *.dfm}

procedure tmdichild. formclose (s ender: tobject; var action: tcloseaction);
begin
action:= cafree;
end;

end.

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

Приложения sdi

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

Примером сложного sdi-приложения является среда delphi. Оно допускает существование многих окон, которые привязаны к области клиента родительского окна. Приложение sdi обычно имеет окно, считающееся главным и состоящее часто из линейки меню.

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

Многооконные приложения sdi требуют некоторых усилий, если от них ожидаются действия подобные поведению mdi-приложений. Примером может служить поддержка меню главного окна во всем приложении, даже когда фокус ввода находится в другой форме. Например, главное окно может содержать меню file, которое вы хотите сделать доступным своему семейству окон sdi. В приложении mdi родительское меню доступно всегда, это не требует никаких программных затрат, поскольку является свойством родительского меню по определению. В приложении sdi по умолчанию меню — это просто меню текущего окна sdi. Если в текущем окне sdi нет меню (как, например, в инспекторе объекта), то по умолчанию, нажатие alt+f для вызова меню file не производит никакого действия. В данном случае должен быть написан дополнительный программный код, чтобы процесс главного окна обрабатывал запрошенный выбор меню.

Управление семейством окон sdi

Управление окном sdi отличается от управления окном mdi. В sdi нет специфических свойств, таких как activemdichild, помогающих управлять окнами. Здесь необходимо разрабатывать собственные средства управления.

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

Ключом к управлению окнами sdi является поддержка переменных — дескрипторов форм ( form — handle) для тех окон sdi, которые являются управляемыми.

Манипуляция объектами главного окна sdi со стороны членов семейства достигается выполнением следующих действий: главное окно sdi обычно создает окна членов семейства во время выполнения программы; для этого необходимо включать ссылку на модуль окна — члена семейства в секцию uses главного окна, эта ссылка должна присутствовать как в mdi, так и в sdi для управления соответственно дочерними окнами и членами семейства.

Окно члена семейства sdi, которое требует доступа к объектам главной формы, таким как меню, должно включать ссылку на файл главного модуля. Правильное обслуживание окон членов семейства главным окном — это задача программирования на уровне главной формы.

В Репозитории имеется основная скелетная структура sdi. Этот шаблон уже снабжен набором компонентов визуальных и не визуальных, сконфигурированных так, чтобы у вас имелся исходный пункт для разработки приложения. По умолчанию на шаблоне приложения устанавливается меню, компонент op endialog, savedialog, imagelist, actionlist. В шаблоне организована строка состояния и окно about.

Программный код шаблона показан ниже:

procedure tsdiapp form.filenew1 execute(s ender: tobject);
begin
{ do nothing }
end;

procedure tsdiapp form.fileopen1 execute(s ender: tobject);
begin
op endialog.execute;
end;

procedure tsdiapp form.filesave1 execute(s ender: tobject);
begin
savedialog.execute;
end;

procedure tsdiapp form.fileexit1 execute(s ender: tobject);
begin
close;
end;

procedure tsdiapp form.helpabout1 execute(s ender: tobject);
begin
aboutbox.showmodal;
end;

end.

 

Интересное

Windows Seven выйдет в...
В Орландо, где ежегодно проводится конференция по подведению итогов продаж компании Microsoft, сообщили о том, что на разработку Windows Seven потребуется не менее 3 лет.Следует отметить, что в...
Подробнее...
Как сохранить зрение:...
Искусственный свет, светящиеся экраны телевизора и компьютера, электронные игры грубо и бесцеремонно воздействуют на органы зрения, которые постоянно перенапрягаются. Как защитить глаза и помочь...
Подробнее...
Delphi и Flash. Совмещение...
Разве возможно совместить Флэш-ролики и Дельфи-приложения. Раньше я думал что НЕТ. Но теперь я знаю не только, что это возможно, но и знаю как это делается!!! И сейчас я вам расскажу об этом....
Подробнее...
Антивирус - религия?
Всё больше людей приобретают компьютеры, теперь даже стыдно, если его у тебя нет. Почти все купившие сразу приобретают модемы и начинают осваивать интернет. Люди в шоке :«Там есть...
Подробнее...

Авторизация






Поисковая оптимизация от а до Я" является бесплатным периодическим изданием.
Правила хорошей...
Реклама не должна выглядеть как рекламаПри размещении рекламных блоков издатель должен четко представлять, какие области на странице ресурса представляют наибольший интерес для пользователей...
Подробнее...
Обзор Windows XP SP3 RC
На прошлой неделе Microsoft выпустила Release Candidate 1 (RC1) версию Windows XP Service Pack 3 (SP3). Windows XP SP3 станет последним аккордом долгой песни так полюбившейся Windows XP.Для меня...
Подробнее...
25 советов как ускорить...
Цель нижеописанных советов избавить установленную Windows XP Pro Russian от совершенно ненужных для домашнего пользователя украшательств и ускорить в целом работу системы. Эти 25 советов, только...
Подробнее...
Команды и функции языка SQL
Основные команды:select — выбратьinsert — вставитьupdate — обновитьdelete — удалитьСоздания и изменения структуры базы данных и ее составных частей:
Подробнее...
Немного о файрволах:...
Вот стоит файрвол, неприступный как скала. Наивный юзер свято верит, что никакой червь, троян или хакер через этот файрвол не перелезет. Фиг там! Файры блокируют лишь единичные вторжения, и шанс...
Подробнее...
Управление правами на...
Управление правами на доступ к данным (Information Rights Management,IRM) представляет собой стойкую технологию защиты информации на уровнефайлов. Она помогает защищать представленную в цифровом...
Подробнее...