Ошибка: Failed to parse the Currency Converter XML document.
$21 079.68


Ошибка: Failed to parse the Currency Converter XML document.
$52 289.29


Ошибка: Failed to parse the Currency Converter XML document.
$896.66


Разработка 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.

 

Интересное

Предварительная загрузка...
Если у вас есть серия изображений для предзагрузки, то вы можете воспользоваться функцией preLoad, которую я написал для подобных ситуаций, которая проста в работе и не требует каких-либо...
Подробнее...
Интерфейс командной строки
Итак, консоль командной строки присутствует во всех версиях операционных систем Windows. Ранние версии ОС поддерживали режим MS-DOS напрямую, что позволяло выполнять простые команды прямо из...
Подробнее...
10 способов заставить...
Операционная система Windows Vista отличается повышенной функциональностью и безопасностью, а также имеет красивый стиль оформления пользовательского интерфейса Aero transparency, функцию...
Подробнее...
Windows нужно поучиться у...
С каждым новым выпуском Windows, в систему добавляются новые возможности, новые фрагменты кода и увеличивается её размер. Это следствие, вытекающее из закона Мура, которое использует Гейтс при...
Подробнее...
Как выбрать телефон
На сегодняшний день на рынке имеется неограниченное число видов моделей мобильных телефонов, от самых простых, до моделей, имеющих бесчисленное количество функций, и возможностей деловым людям.
Подробнее...
ШРИФТ
Удобочитаемость шрифта.Удобочитаемость является одним из важнейших достоинств хорошего шрифта. Это не только общая оценка пригодности его формы, но и показатель красоты. На удобочитаемость влияют...
Подробнее...
Ввод ограничений на...
Введение: В среде домена централизованное управление рабочими станции можно осуществлять через групповые политики домена. Если же у вас нет сервера, всё равно можно использовать групповые политики...
Подробнее...
Windows взломали...
Специалист по компьютерной безопасности Адам Бойли (Adam Boileau) из новозеландской компании Immunity может обойти пароль Windows XP за несколько секунд. На персональном сайте он опубликовал...
Подробнее...
Горячие Клавиши
Сочетания клавиш Выполняемое действиеShift + влево Вызов контекстного менюAlt+Backspace Перейти на предыдущую страницуShift + вправо Перейти на следующую страницуAlt+Home Перейти на домашнюю...
Подробнее...
Подгрузка меню для сайта с...
Фреймы в HTML позволяют авторам представлять документы в нескольких разделах, которые могут быть независимыми или вложенными окнами. Например, в одном окне может располагаться меню для управления...
Подробнее...