Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Модуль Forms 65411
ТЕХНОЛОГИИ ДОСТ... 62309
Имитационное мо... 57990
Реклама
Сейчас на сайте
Гостей: 6
На сайте нет зарегистрированных пользователей

Пользователей: 13,087
новичок: sergeevo
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Обратное размещение элементов ЭВС на Delphi + Пояснительная записка
Моделирование станции технического обслуживания на GPSS + Отчет
моделирование процесса поступления заявок в ЭВМ на GPSS + Пояснительная ...

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
Методика проектирования меню и инструментальной панели
В Delphi меню создаются компонентами MainMenu — главное меню, и PopupMenu — всплывающее меню. Оба компонента расположены на странице Standard. Ниже рассмотрены основные этапы разработки полноценного меню.
1. Создайте новый проект и откройте главную форму будущего приложения.
2. Перенесите на форму компонент ImageList — список изображений для команд меню и кнопок инструментальной панели (страница Win 32).
3. С помощью редактора списка изображений (рис. 4), вызываемого двойным щелчком на ImageList, заполните список изображениями, символизирующими основные команды и кнопки панели инструментов будущего меню.
меню
Рис. 4
Изображение добавляется в список нажатием кнопки Add и последующим выбором файла изображения. С Delphi поставляется много изображений кнопок. Они расположены в каталоге \Images\Buttons, а сам каталог Images расположен в каталоге \program files\common files\borland shared. Размер всех изображений в списке должен быть одинаковым. При добавлении в список изображений для кнопок необходимо учесть, что они часто содержат не одно, а два и более изображений. В этих случаях при попытке добавить изображение задается вопрос: «Bitmap dimensions for ... are greater then imagelist dimensions. Separate into ... separate bitmaps?» (Размерность изображения ... больше размерности списка. Разделить на ... отдельные битовые матрицы?). На заданный вопрос надо отвечать положительно. Тогда загружаемая битовая матрица автоматически разделится на отдельные изображения и потом можно удалить те из них, которые не нужны, кнопкой Delete.
При выборе изображений можно ориентироваться по именам соответствующих файлов и пиктограммам, которые показываются в правой части окна выбора: Find.bmp – файл кнопки поиска, Font.bmp – файл кнопки выбора шрифта и т.д.
4. Перенесите на форму со страницы Dialogs компоненты стандартных диалогов типа «Открыть файл» (компонент OpenDialog), «Сохранить файл как» (компонент SaveDialog), «Шрифт» (компонент FontDialog) и другие компоненты, с которыми будут выполняться операции в разрабатываемом приложении. Разместите на форме компонент RichEdit (страница Win32) многострочного окна редактирования и компонент MainMenu (главное меню) со страницы Standard.
5. Свяжите компонент MainMenu со списком изображений, полученным в п. 3, установив для компонента MainMenu свойство Images равным ImageList1 — имени компонента ImageList. Вызовите редактор меню (рис. 5), сделав двойной щелчок на MainMenu. В пунктирной рамке задайте заголовок первого пункта меню, в соседней рамке — второго и т.п. Для этого после щелчка по рамке следует перейти в Инспектор Объектов и в нем задать значение свойства Caption как имя пункта меню.
Щелкнув на заголовке одного из пунктов меню, вы получите доступ к вводу команд данного пункта. Выделите очередную пунктирную рамку в списке команд пункта и в Инспекторе Объектов задайте имя команды как значение свойства Caption. Повторите те же действия для других команд и пунктов.

Рис. 5 и 6
Для удаления названий команд или пунктов меню можно использовать команду Delete контекстного меню (рис. 6), которое открывается на выделенном пункте меню или на строке с названием команды.
В названиях пунктов меню или команд можно указать символ «&» перед тем символом, который определит клавиши быстрого выбора пункта или команды. Например, на рис. 5 показан пункт Файл, который можно выбрать сочетанием клавиш Alt+Ф. При создании меню имя этого пункта в строке Caption Инспектора Объектов была таким: &Файл.
Если нужно вставить разделительную черту, отделяющую группы команд друг от друга, следует очередной элемент меню ввести с именем «-».
Для задания «горячих клавиш» командам меню в Инспекторе Объектов назначается одно из значений свойства ShortCut.
Для создания разветвленных меню, т.е. таких, у которых подпункты вызывают новые списки команд, следует щелкнуть по названию подпункта и нажать комбинацию клавиш Ctrl+Bnpaвo, где Вправо - клавиша смешения курсора вправо. Такого же эффекта можно добиться после щелчка правой кнопкой мыши на подпункте и выбора команды Create Submenu из открывшегося контекстного меню (рис. 6).
Для элемента меню определено единственное событие ОnСliск, которое возникает при щелчке по названию команды или при нажатии Enter, если в этот момент строка с данной командой была выбрана (подсвечена). Обработчик события становится доступен после двойного щелчка по строке с названием команды в окне конструктора меню.
6. Рассмотрим процедуру создания панели инструментов для приложения. Установите на форму компонент ControlBar с вкладки Additional, и измените его свойство Align на alTop, чтобы растянуть компонент вдоль верхней кромки окна, а свойству AutoSize задайте значение true.
Компонент ControlBar целесообразно использовать потому, что на нем удобно располагать панели инструментов. Они автоматически становятся перемещаемыми внутри ControlBar. Это значит, что панели можно будет двигать по своему усмотрению. Если свойство AutoSize равно true, то компонент будет автоматически растягиваться и сужаться, когда возникнет необходимость выстраивать все панели в одну строку или в столбик.
Установите на компонент ControlBar одну панель ToolBar с вкладки Win32 и измените его свойство EdgeBorders. Для этого дважды щелкните левой кнопкой мыши по свойству EdgeBorders и задайте свойству еbТор значение false. Это заставит исчезнуть оборку сверху панели.
Желательно также сразу изменить здесь и свойство AutoSize на true, чтобы панель принимала размеры, соответствующие кнопкам.
Для создания кнопки на панели щелкните по ней правой кнопкой мыши и выберите из появившегося контекстного меню (рис. 7) пункт New Button.

Рис. 7
Пункт New Separator этого же меню создает разделитель между кнопками. Если нужно удалить кнопку или разделитель, то после их выделения на клавиатуре нажимается клавиша <Del>. Чтобы кнопки на панели выглядели более изящно (плоско), выделите панель и измените свойство Flat на true.
Для того чтобы нанести на кнопки какие-либо изображения, следует выделить панель и связать ее со списком изображений, полученным в п. 3, установив для панели свойство Images равным ImageList1. На кнопках сразу же отобразятся картинки в той последовательности, в которой они добавлялись в список рис.4. Если нужно изменить картинку на какой-нибудь кнопке, надо выделить ее и изменить свойство ImageIndex.
Для каждой кнопки в свойстве Caption следует ввести название кнопки - осмысленный текст, который бы по возможности соответствовал изображению на картинке. Чтобы панель отображала на кнопках не только картинки, но и их названия, нужно установить значение true в свойстве ShowCaptions у панели инструментов. Если еще установить свойство List у панели инструментов, то текст будет отображаться справа от картинки.
Для создания обработчика события для какой-нибудь из кнопок выполняется двойной щелчок по изображению кнопки и в открывшемся окне редактора вводится текст процедуры.
7. Если необходимо обеспечить в приложении контекстные всплывающие меню, то на форму нужно перенести один или несколько (по числу различных контекстных меню) компонентов PopupMenu со страницы Standard. Свяжите их с компонентом ImageList, задав соответствующее значение для свойства Images. Затем двойным щелчком на PopupMenu нужно открыть тот же редактор меню, что и в случае MainMenu. Команды контекстного меню проектируются точно так же, как и команды главного меню.
Когда контекстное меню сформировано, для привязки его к необходимому компоненту этот компонент выделяется на форме и в Инспекторе Объектов его свойство PopupMenu задается равным имени компонента соответствующего PopupMenu.
8. Созданное меню можно сохранить как шаблон для использования в других приложениях. Для этого в редакторе меню следует выбрать из контекстного меню (рис.6) команду Save As Template. Эта команда вызывает диалоговое окно, представленное на рис. 8.

Рис. 8
В этом окне в верхней строке можно указать описание (заголовок), под которым будет сохраняться новое меню. Впоследствии в любом другом приложении можно загрузить этот шаблон в меню, выбирая из контекстного меню в окне конструктора меню команду Insert From Template. Для удаления не используемых в данном приложении команд или пунктов меню они выделяются и нажимается клавиша Del.
Опубликовал Kest December 23 2009 01:41:06 · 0 Комментариев · 6863 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
MpegPlay
Удаление своего EXE
Книга по Delphi (...
Программа для рис...
Assistant
Error mod
Delphi 2005 для W...
Использование Lis...
Калькулятор [Исхо...
Animation (Пример...
DeleteEdit
C++ Builder: Книг...
FreeNet
NetGraph [Исходни...
Print Grid
Allsubmitter 4.7 ...
С# для профессион...
Пример работы с р...
Язык программиров...
IIIDTrans

Топ загрузок
Приложение Клие... 100471
Delphi 7 Enterp... 87433
Converter AMR<-... 20080
GPSS World Stud... 13063
Borland C++Buil... 11922
Borland Delphi ... 8631
Turbo Pascal fo... 7041
Visual Studio 2... 5000
Калькулятор [Ис... 4853
FreeSMS v1.3.1 3543
Случайные статьи
Кольцевые топологи...
Работа с Outlook к...
Калгари (штат Альб...
Как заработать на ...
Форматы архивации ...
Списковая форма за...
Объект PageSetup
RESET (СБРОСИТЬ)
Слот-автоматы
Пространство имен
Популярные системы...
Invalid numeric fo...
Операции над списк...
Что отслеживает се...
Хакинг игровых при...
Выработка решенияП...
3. Это избыточное ...
Error in type
При хакинге Xbox п...
4. Закрытый ключ в...
Задание: определит...
Network File System
Измерение бесплатн...
двусвязный список
Программа заменяет...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?