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

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

Жанры

Шрифт:

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. Наибольшее применение всех доступных регистров, в результате хранения в них рабочих значений каждый раз, когда это возможно, чтобы уменьшить число обращений к памяти, упаковка большого числа значений или флагов в регистры и устранение лишних продвижений стека (особенно на входах и выходах подпрограмм).

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

Бастард Императора. Том 10

Орлов Андрей Юрьевич
10. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Бастард Императора. Том 10

Отмороженный 8.0

Гарцевич Евгений Александрович
8. Отмороженный
Фантастика:
постапокалипсис
рпг
аниме
5.00
рейтинг книги
Отмороженный 8.0

Барон диктует правила

Ренгач Евгений
4. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон диктует правила

Эволюционер из трущоб. Том 5

Панарин Антон
5. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 5

Студиозус 2

Шмаков Алексей Семенович
4. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Студиозус 2

Перешагнуть пропасть

Муравьёв Константин Николаевич
1. Перешагнуть пропасть
Фантастика:
боевая фантастика
космическая фантастика
8.38
рейтинг книги
Перешагнуть пропасть

Егерь

Поселягин Владимир Геннадьевич
3. Маньяк в Союзе
Фантастика:
боевая фантастика
альтернативная история
6.31
рейтинг книги
Егерь

Локки 8. Потомок бога

Решетов Евгений Валерьевич
8. Локки
Фантастика:
фэнтези
боевая фантастика
героическая фантастика
попаданцы
5.00
рейтинг книги
Локки 8. Потомок бога

Любимая учительница

Зайцева Мария
1. совершенная любовь
Любовные романы:
современные любовные романы
эро литература
8.73
рейтинг книги
Любимая учительница

Вперед в прошлое 3

Ратманов Денис
3. Вперёд в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 3

Убивая маску

Метельский Николай Александрович
13. Унесенный ветром
Фантастика:
боевая фантастика
5.75
рейтинг книги
Убивая маску

Неудержимый. Книга XXXII

Боярский Андрей
32. Неудержимый
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Неудержимый. Книга XXXII

Законы Рода. Том 12

Андрей Мельник
12. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 12

На границе империй. Том 7. Часть 5

INDIGO
11. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 7. Часть 5