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


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


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


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

 

Интересное

Основы позиционирования блоков
Блоки — прямоугольные области, используемые в CSS для формирования и отображения документов. Это упрощенно, очень сильно упрощенно, но на первом этапе вполне может и хватить.С появлением нового...
Подробнее...
Используем Cron
Данная заметка предназначенна для тех, кто собирается работать с cron, но еще не знает как все это делается. Я в кратце попробую объяснить что такое cron, для чего он нужен да и как вообще с ним...
Подробнее...
12 языков...
Существует около 8 500 языков программирования (не удивляйтесь, данные не преувеличены), однако, несмотря на такое разнообразие, число языков, на которых пишет большинство, с трудом переваливает...
Подробнее...
Голосование на базе
«А зачем на базе?» — спросите Вы и будете абсолютно правы. В принципе незачем. Просто делая как-то систему управления, я столкнулся с необходимостью дать абсолютно некомпетентному в кодинге...
Подробнее...
10 причин медленной работы...
Пользователи редко жалуются на работу новых ПК. Немудрено, ведь и система, и программы запускаются мгновенно. Однако со временем они начинают замечать, что система работает всё медленнее и с...
Подробнее...
SSH - доступ. Crontab....
Закачивать сайт можно по протоколу FTP, соединяясь с сервером, где расположен ваш сайт, с помощью FTP-клиента. Но бывают ситуации, когда нужно отладить работу скрипта непосредственно на сервере...
Подробнее...
Руководство по TCP/IP для...
Большинство из нас знает TCP/IP как «клей», связующий Internet. Но не многие способны дать убедительное описание того, что этот протокол представляет собой и как работает. Итак, что же такое...
Подробнее...
Поиск файлов с расширением...
Чтобы убедиться в этом, создайте текстовый файл и запишите в него одно слово (например, «поиск»). Сохраните этот файл с расширением log или cpp. Теперь запустите поиск файлов (Пуск > Поиск),...
Подробнее...
Какой софт нужен для...
Что нужно настоящему веб-мастеру для полноценной работы? Совсем немного. В этой статье я опишу весь soft, который нужен для нормальной работы web-мастеров.1) Правильный выбор HTML-редактора.В наше...
Подробнее...
О Windows Vista
<img src=«http://i-faq.ru/uploads/posts/2007-09/1189807052_[b]windows[/b]_vista_logo.png» align=«left» style=«border: none;» alt=«О Windows Vista» />О Windows Vista слышали если не все, то, как...
Подробнее...