Что такое mdi и sdi интерфейс

от admin

Лекция 8

Существуют два основных стиля интерфейсов пользователей: интерфейс с одним документом (single-document interface, SDI) и интерфейс со многими документами (multiple-document interface, MDI). Примером интерфейса SDI является текстовый редактор WordPad, включённый в Microsoft Windows.

Такое приложение как Microsoft Word 2010, является приложением с интерфейсом MDI. Оно позволяет открывать одновременно несколько документов в одном окне.

Стиль SDI является наиболее распространенным. Есть третий стиль — интерфейс в стиле проводника. Это интерфейс состоит из одного окна, содержащего две панели. На левой панели представлено дерево или иерархический вид, правая панель является областью отображения, как например в Microsoft Windows Explorer (Проводник).

MDI приложение

Интерфейс MDI позволяет создавать приложения, которые поддерживают много форм в одной форме- контейнере. Такие приложения как Paint.NET и Notepad++, имеют многодокументный интерфейс.

Приложение MDI позволяет пользователю отображать несколько документов одновременно, причём каждый документ отображается в собственном окне. Документы, или подчинительные окна (child windows), помещаются в родительское окно (parent windows), которое представляет рабочую область (workspace) для всех подчинённых окон в приложении. Например, Google Chrome позволяет создавать и отображать разные типы окон, Каждое индивидуальное окно ограничено областью родительского окна. При сворачивании которого все окна документов также сворачиваются.

SDI приложение

Интерфейс SDI в отличии от интерфейса MDI не позволяет создавать приложения, которые поддерживают много форм в одной форме- контейнере. Такой интерфейс характерен таких программ где пользователю не надо открывать одновременно два документа.

Например, в программе «Календарь» пользователю вряд ли понадобится два одинаковых календаря в одном окне. Программы у которых SDI интерфейс: Калькулятор, Skype, различные игровые приложения.

Таймеры

Операционная система Windows позволяет для каждого приложения создать несколько виртуальных таймеров. Все эти таймеры работают по прерываниям одного физического таймера.

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

Несмотря на возможность указания интервалов времени в миллисекундах, реальная дискретность таймера определяется периодом прерываний, посылаемых таймером. Этот период (то есть длительность одного такта таймера) можно узнать с помощью функции GetTimerResolution:

DWORD WINAPI GetTimerResolution (void);

Создание и удаление таймера

Для создания виртуального таймера приложение должно использовать функцию SetTimer:

UINT WINAPI SetTimer (HWND hwnd, UINT idTimer, UINT uTimeout, TIMERPROC tmprc);

hwnd — идентификатор окна, функция которого будет получать сообщения от таймера, или NULL. В последнем случае с создаваемым таймером не связывается никакое окно и сообщения от таймера будут приходить в специально созданную для этого функцию.

idTimer — идентификатор таймера (он не должен быть равен нулю).

uTimeout — период следования сообщений от таймера в миллисекундах.

Tmprc — адрес функции, которая будет получать сообщения WM_TIMER.

Возвращаемое функцией SetTimer значение является идентификатором созданного таймера (если в качестве первого параметра функции было указано значение NULL). В любом случае функция SetTimer возвращает нулевое значение, если она не смогла создать таймер.

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

BOOL WINAPI KillTimer (HWND hwnd, UINT idTimer);

hwnd — идентификатор окна, указанный при создании таймера функцией SetTimer;

idTimer — идентификатор уничтожаемого таймера.

Функция KillTimer возвращает значение TRUE при успешном уничтожении таймера или FALSE, если она не смогла найти таймер с указанным идентификатором.

Что такое mdi и sdi интерфейс

Видео: Difference between MDI and SDI in VB.Net Hindi

Содержание

Основная разница

Существуют различные способы различения графического пользовательского интерфейса, и один простой способ сделать это состоит в том, чтобы увидеть, сколько опций на экране может быть показано одновременно. Существует два различных типа интерфейсов, которые используются для обработки документов на экране компьютера. Они известны как MDI и SDI. Оба отличаются друг от друга, и это показано, когда мы объясняем термины. SDI обозначает интерфейс с одним документом, а MDI — интерфейс с несколькими документами. Они могут быть дополнительно разработаны таким образом, что графический интерфейс пользователя, который может отображать один документ за раз на экране, известен как SDI, в то время как интерфейс, в котором несколько документов могут быть показаны одновременно, известен как MDI. Лучшим примером SDI будет блокнот, в котором одновременно можно открыть только одно окно, другим примером может быть команда приглашения Windows. Наиболее реальным примером MDI могут быть несколько последних приложений, которые включают в себя все последние веб-браузеры и приложения, такие как и. Существует также другое отличие, которое проявляется в форме группировки, которая существует всякий раз, когда используется MDI, но эта опция недоступна в SDI и может быть достигнута только с помощью командного окна. Между ними также есть много других отличий, которые будут перечислены в конце, но краткое описание обоих будет дано в следующих двух параграфах.

Сравнительная таблица

MDI SDI
Полное имя Многодокументный интерфейс Единый интерфейс документа
Тип Это тип графического пользовательского интерфейса, который может одновременно отображать на экране более одного документа. Это графический пользовательский интерфейс, который может отображать один документ за раз на экране.
максимизация Все документы можно развернуть в MDI Должна быть специальная команда, чтобы максимизировать документы.
пример Последние веб-браузеры. блокнот windows

Определение SDI

Этот термин известен как «Интерфейс единого документа» и представляет собой графический интерфейс пользователя, который может отображать один документ за раз на экране. Любой тип программы, который не имеет возможности показывать более одного документа, считается пользовательским интерфейсом типа SDI. Есть много примеров этого типа, таких как Internet Explorer 6 и предыдущих. Блокнот — это еще один пример, в котором вы можете просто показывать одно окно за раз, а команда windows — другое похожее приложение. Основное преимущество этого типа интерфейса в том, что он прост в использовании, а сложную задачу можно легко выполнить, не переключаясь с одного приложения на другое.

Определение MDI

Этот термин называется интерфейсом нескольких документов и представляет собой тип графического интерфейса пользователя, который может отображать на экране более одного документа за раз. Любой тип программы, который имеет возможность показывать более одного документа, считается пользовательским интерфейсом типа MDI. Лучшие примеры этого типа интерфейса включают все последние веб-браузеры, в которых можно одновременно открывать несколько вкладок, чтобы увидеть всю необходимую информацию. Основным преимуществом интерфейса такого типа является то, что работа может выполняться быстро по сравнению с одним экраном, но основным недостатком является то, что последние открытые окна не отображаются после их закрытия.

Различия в двух словах

  1. Все документы могут быть развернуты в MDI, в то время как для максимизации документов необходима специальная команда.
  2. Графический интерфейс пользователя, который может отображать на экране один документ за один раз, называется SDI, а графический интерфейс пользователя, который способен отображать на экране более одного документа, называется MDI.
  3. SDI обозначает интерфейс с одним документом, а MDI — интерфейс с несколькими документами.
  4. Документы можно легко переключать в MDI, в то время как командное окно используется для переключения между ними в SDI.
  5. Лучшим примером SDI является блокнот Windows, а лучшим примером MDI — новейшие веб-браузеры.
  6. Группировка выполняется один раз больше, чем необходимое количество вкладок в MDI, а в SDI это невозможно.
Читать:
Open toons как увеличить картинку

Заключение

Компьютер является чем-то, что является загадкой для людей, которые являются обычными пользователями и не имеют подробных знаний об этом. Два термина MDI и SDI являются схожими, которые считаются одинаковыми, но различаются по работе и функциям. Следовательно, эта статья дает правильное понимание двух типов, чтобы люди могли получить более ясное представление.

MDI против SDI

MDI и SDI являются интерфейсами для обработки документов в рамках одного приложения. MDI расшифровывается как «Multiple Document Interface», в то время как SDI расшифровывается как «Single Document Interface». Оба отличаются друг от друга во многих аспектах. Один документ на окно применяется в SDI, в то время как дочерние окна на документ допускаются в MDI. SDI содержит только одно окно за раз, но MDI содержит несколько документов одновременно, которые отображаются как дочерние окна. MDI — это контейнерный элемент управления, а SDI — это не контейнерный элемент управления. MDI поддерживает множество интерфейсов, что означает, что мы можем обрабатывать множество приложений одновременно в соответствии с требованиями пользователя. Но SDI поддерживает один интерфейс, что означает, что вы можете обрабатывать только одно приложение одновременно.

Содержание: Разница между MDI и SDI

  • Что такое МДИ?
  • Что такое SDI?
  • Ключевые отличия
  • Видео Объяснение

Что такое МДИ?

MDI расшифровывается как Multiple Document Interface. Это дизайн интерфейса для обработки документов в рамках одного приложения. Когда приложение состоит из родительской формы MDI, содержащей все другие окна, состоящие из приложения, тогда можно использовать интерфейс MDI. Переключение фокуса на конкретный документ может быть легко обработано в MDI. Для максимизации всех документов родительское окно максимизируется MDI.

Что такое SDI?

SDI расшифровывается как Single Document Interface. Это дизайн интерфейса для обработки документов в рамках одного приложения. SDI существует независимо от других и, таким образом, является отдельным окном. SDI поддерживает один интерфейс, что означает, что вы можете обрабатывать только одно приложение одновременно. Для группировки SDI использует специальные оконные менеджеры.

Урок 5

Многооконная структура программы
Перетаскивание файлов в приложение

Часть урока для новичков

Приложения MDI и приложения SDI.

Прежде чем устанавливать вид и свойства вашего приложения надо подумать о том, какой вид приложения вы желаете создать. Это во многом зависит от его функционального назначения. Можно выбирать между так называемыми MDI- или SDI-приложениями.

MDI — сокращенно от Multiple Document Interface (интерфейс для одновременной работы со многими документами), а SDI — от Single Document Interface (интерфейс для работы с одним документом). В MDI приложениях два или более окон могут быть активны одновременно. В SDI-приложениях это невозможно. Здесь в каждый момент времени может быть активным только одно окно.

MDI -приложения являются удобным средством для одновременного выведения на экран текста или данных, которые хранятся в различных файлах. Такую структуру построения окон можно использовать для редактирования текстов, открывая и выводя на экран одновременно несколько различных документов. С помощь этих приложений можно также производить табличные вычисления, обрабатывая несколько таблиц одновременно, перенося или сравнивая данные из одной в другую. Пример такой работы над файлами — программа MS Word. Здесь файлы текстового и графического формата открываются в отдельных окнах, находящихся внутри главного окна программы.

Различные открываемые документы в окнах имеют общее рабочее пространство, в пределах которого они отображаются, называемое родительским окном. Всегда в MDI-приложении родительское окно является главной формой приложения. Все внутренние формы, называемые дочерними окнами отображаются в пределах рабочего пространства родительского окна и не могут быть помещены за ее пределы. Даже при свертывании. При максимизации таких окон, они занимают все рабочее пространство родительского окна, оставаясь внутри его.

Родительское окно может быть в MDI-приложениях только одно, а дочерних окон может быть теоретически бесконечно.

Большинство MDI-приложений имеют меню » Window » («Окно») со следующими пунктами: Cascade, Arrange Icons, Tile Horizontal, Tile Vertical . С их помощью пользователь может управлять дочерними окнами приложения. Обычно нижняя часть меню отделена и представляет список всех открытых окон. Это свойство весьма удобно для быстрого перехода к тому или иному редактируемому файлу.

Все SDI-окна можно разделить по свойствам доступа друг к другу как модальные и немодальные. Они определяют, может пользователь или нет переключаться на другие окна. Когда модальное окно открыто, все другие открытые окна становятся недоступными. Пример можно увидеть практически из любой программы, вызвав пункт меню «About» («О программе»). Отображаемое окно в приложении, как правило, не дает переключится на другое, пока не будет закрыто. Такое свойство иногда бывает очень полезным. Например, когда нужно чтобы пользователь ввел пароль, а затем получил доступ к определенному окну с данными, или окно фильтра данных, указав условия отбора, получает доступ к результату.

Итак, модальными или немодальными могут быть только SDI-окна.

С сегодняшнего урока мы с вами начинаем разрабатывать довольно сложный пример простого многооконного текстового редактора.


    Запускаем Delphi. В меню «File» выбираем пункт «New Application».

Поскольку в этом окне создается другое, то в переименованный модуль MainUnit необходимо подключить ChildUnit . Для этого выбираем из меню » File » пункт «Use Unit: » и указываем модуль ChildUnit . Нажимаем OK.

Все, запускаем программу на выполнение. Во время работы обратите внимание на список появившихся окон в меню «Окна», по которым удобно переключаться на необходимое окно.

В следующих уроках мы подробнее остановимся на написании этого примера. Если в этом уроке у вас что-то не получается, то пример на данном этапе разработки можно скачать здесь (2 KB). Если вы в последствии открываете свой или скаченный проект, не забывайте, что нужно открывать DPR файл.

Часть урока для продвинутых программистов

Перетаскивание файлов в приложение

Иногда очень полезно избавить пользователя от лишних операций при открытии файла. Он должен нажать на кнопку «Открыть», затем найти интересующий каталог, выбрать файл. Проще перетащить мышкой файл сразу в окно приложения. Рассмотрим пример перетаскивания Drag & Drop в окно произвольного текстового файла, который сразу же открывается в компоненте Memo1.

Для начала в разделе Uses необходимо подключить модуль ShellAPI .

В private области окна нужно вставить следующую строку:

procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES; //получение сообщений о переносе файла в окно приложения

Процедура обработки этого сообщения будет выглядеть следующим образом:

procedure TForm1.WMDropFiles(var Msg: TWMDropFiles);
var
CFileName: array[0..MAX_PATH] of Char; // переменная, хранящая имя файла
begin
try
If DragQueryFile(Msg.Drop, 0, CFileName, MAX_PATH)>0 then // получение пути файла
begin
Form1.Caption:=CFileName; // имя файла в заголовок окна
Memo1.Lines.LoadFromFile(CFileName); // открываем файл
Msg.Result := 0;
end;
finally
DragFinish(Msg.Drop); // отпустить файл
end;
end;

Для того, чтобы форма знала, что может принимать такие файлы, необходимо в процедуре создания окна указать:

procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(Handle, True);
end;

Похожие статьи