Чтение онлайн

на главную - закладки

Жанры

Шрифт:

Name – внутреннее название объекта программы;

TabOrder – показывает направление движения фокуса в случае нажатия на клавишу Tab;

TabStop – при некотором значении False фокус в случае нажатия на клавишу Tab на данный объект не переводится.

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

40. Окно редактора кода Дельфи

Окно редактора кода. Окно данного редактора имеет три части:

1) панель модулей

описания переменных и используемых модулей;

2) панель кода программы;

3) панель найденных ошибок программы (на этапе создания программы данное окно является невидимым, активизируется, если это необходимо, при компиляции программы).

Рассмотрим конкретные проблемы программирования. Покажем раздел Delphi, который называется диалоги. С одной стороны, это достаточно простой раздел. Затруднительным является вопрос о том, как можно совершить операции над файлом, который должен выбрать пользователь. В различных литературных источниках встречаются разные варианты решения и создания дополнительной формы объекта: и попытка заставить пользователя от руки написать адрес файла, и предлагали воспользоваться компонентами Treeview, OutLine и им подобными. Однако существует и более короткий и простой путь для решения проблемы. Достаточно использовать компоненты OpenDialog. Этот компонент легко устанавливается на форму проекта в форме квадрата. В случае запуска программы он невидим. Квадрат только указывает на то, что компонент установлен и дает возможность обращаться к его свойствам с помощью инспектора объектов. Рассмотрим их поподробнее.

После установки компонента на конструкцию проекта диалоговое окно возможно активизировать, применяя функции Execute: Boolean. В этом случае, если пользователь выбрал один или несколько файлов и нажал кнопку ОК, функция возвращает True. Свойство элемента FileName включает имя последнего файла из всех выбранных в диалоге. Свойство Files является списком всех файлов, выбранных в диалоге. Свойство InitialDir определяет каталог, к которому диалог обращается в случае открытия. Свойство Title включает в себя заголовок диалогового окна. Необходимо кроме этого отметить свойство Filter. С помощью данного свойства в случае выбора и сохранения файлов удобно производить отбор файлов только с заданными расширениями. Например, при создании фильтра для исполняемых файлов в свойство должна входить следующая строка:

'Исполняемые файлы | *.EXE'

В одном фильтре можно отбирать файлы и с разными расширениями:

'Графические изображения | *.JPG; *.GIF; *.PNG'

Фильтр также можно создать в обычном редакторе, связанном со свойством Filter в инспекторе объектов.

41. Сообщения Дельфи

Осуществить сообщения можно с помощью нескольких процедур: с помощью процедуры ShowMessage, функции MessageDlg, создания дополнительного окна.

Процедура showmessage дает возможность вывести пользователю простое сообщение. При этом образуется дополнительное окно с названием проекта и кнопкой ОК. Выглядит все это так:

Синтаксис: ShowMessage(Msg: string);

Пример:

ShowMessage('Все задачи выполнены успешно');

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

Имеет форму дополнительного окна, дополненного изображением. Кроме того, можно применять диалоговые запросы. Название окна определяется типом запроса.

Синтаксис:

MessageDlg(Msg: string; AType: TMsgDlgType; ABut-tons: TMsgDlgButtons; HelpCtx: Longint): Word;

Msg – строковой параметр. Определяет выводимое сообщение;

Atype – внутренний параметр функции. Определяет тип сообщения:

1) mtWarning – сообщение о предупреждении;

2) mtError – сообщение об ошибке;

3) mtInformation – информационное сообщение;

4) mtConfirmation – сообщение о подтверждении;

5) mtCustom – сообщение не содержит в углу изображения. Название окна соответствует названию

исполняемого файла (аналогично showmessage);

Abuttons – определяет имена кнопок, отображающиеся в диалоговом запросе. Возможны значения: mbYes, mbNo, mbOK, mbCancel, mbHelp, mbAbort, mbRetry, mblgnore, mbAll;

HelpCtx – включает номер раздела, используемый пользователем, если он вызовет справку, когда диалог активизирован.

Например:

MessageDlg(‘Продолжить выполнение программы’,

mtConfirmation, [mbYes, mbNo], 0);

Для определения того, какой вариант ответа вы/

брал пользователь, можно применить простую про/

верку. В этом случае исходный код будет иметь сле/

дующий вид:

If MessageDlg(‘Закончить выполнение задачи?’,

mtConfirmation, [mbYes, mbNo], 0) = mrYes

Then

Begin

MessageDlg(‘Выполнение задачи закончено.’, mtIn/

formation, [mbOk], 0);

Создание сообщения с применением дополнительного окна достаточно трудно. Данный способ применяется для создания сложных запросов, когда одного только «Да» и «Нет» недостаточно. Например, когда от пользователя необходимо получить код продолжения, в зависимости от которого приложение выполнит те или иные операции.

42. Оптимизация по быстродействию в Ассемблер

Приведем некоторые из самых общих процедур этой категории.

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

Уменьшение числа передач в программе: вследствие преобразования подпрограмм в макрокоманды для прямого включения в исполнимый код; за счет преобразования условных переходов, так, чтобы условие перехода было истинным относительно реже, чем причины для его отсутствия; перемещение условий общего характера к началу разветвленной последовательности переходов; изменение вызовов, сразу после чего происходит возврат в программу, в переходы и т. д.

2. Оптимизация циклов, в том числе сдвиг вычислений неизменяющихся величин за границы циклов, разворачивание циклов и «соединение» отдельных циклов, выполняемых одно и то же количество раз, в единый цикл («сжатие цикла»).

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

Поделиться:
Популярные книги

Газлайтер. Том 17

Володин Григорий Григорьевич
17. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Газлайтер. Том 17

Хозяин Стужи 4

Петров Максим Николаевич
4. Злой Лед
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Хозяин Стужи 4

Я еще не барон

Дрейк Сириус
1. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я еще не барон

Тринадцатый II

NikL
2. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Тринадцатый II

Хозяин Теней 4

Петров Максим Николаевич
4. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Хозяин Теней 4

Черный Маг Императора 15

Герда Александр
15. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
сказочная фантастика
фэнтези
фантастика: прочее
5.00
рейтинг книги
Черный Маг Императора 15

Шайтан Иван

Тен Эдуард
1. Шайтан Иван
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Шайтан Иван

Санек

Седой Василий
1. Санек
Фантастика:
попаданцы
альтернативная история
4.00
рейтинг книги
Санек

Неучтенный элемент. Том 2

NikL
2. Антимаг. Вне системы
Фантастика:
городское фэнтези
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 2

Рассвет русского царства 3

Грехов Тимофей
3. Новая Русь
Фантастика:
историческое фэнтези
альтернативная история
5.00
рейтинг книги
Рассвет русского царства 3

Андер Арес

Грехов Тимофей
1. Андер Арес
Фантастика:
рпг
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Андер Арес

Последний Паладин. Том 5

Саваровский Роман
5. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 5

Черный Маг Императора 11

Герда Александр
11. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Черный Маг Императора 11

Тринадцатый XI

NikL
11. Видящий смерть
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Тринадцатый XI