InputBox — Функция Delphi


InputBox — Функция Delphi

Данная функция демонстрирует 3 очень мощных и полезных процедуры, интегрированных в Delphi.

Диалоговые окна InputBox и InputQuery позволяют пользователю вводить данные.

Функция InputBox используется в том случае, когда не имеет значения что пользователь выбирает для закрытия диалогового окна — кнопку OK или кнопку Cancel (или нажатие клавиши Esc). Если вам необходимо знать какую кнопку нажал пользователь (OK или Cancel (или нажал клавишу Esc)), используйте функцию InputQuery.

ShowMessage — другой простой путь отображения сообщения для пользователя.

InputBox — Функция Delphi

Отображает окно ввода, выдающее запрос пользователю на ввод строки.

InputBox ( «title» , «prompt» [, «default» [, «password char» [, width = — 1 [, height = — 1 [, left = Default [, top = Default [, timeout = 0 [, hwnd ]]]]]]]] )

title Заголовок окна ввода.
prompt Сообщение пользователю, объясняющее, что ему необходимо ввести.
default [необязательный] Значение, которое будет отображено в строке ввода при появлении окна ввода.
password char [необязательный] Символ, на который будут заменяться все вводимые символы. Если необходимо, чтобы отображались именно вводимые символы, передайте в качестве параметра пустую строку («») (по умолчанию) или пробел в качестве первого символа. Если будет передана строка с несколькими символами, только первый символ будет использован для «маскировки» ввода. Второй и последующий символы строки имеют специальное значение. См. примечания.
width [необязательный] Ширина окна (по умолчанию -1).
height [необязательный] Высота окна (по умолчанию -1).
left [необязательный] Координата левого края окна (по умолчанию Default , чтобы центрировать окно).
top [необязательный] Координата верхнего края окна (по умолчанию Default , чтобы центрировать окно).
timeout [необязательный] Время ожидания (в секундах), по истечении которого InputBox будет автоматически закрыт (по умолчанию 0, что означает, что время отображения не ограничено).
hwnd [необязательный] Дескриптор родительского окна. Предотвращает доступ к родительскому окну, пока существует InputBox.
Успех: Возвращает введённую строку.
Ошибка: Возвращает «» (пустую строку) и устанавливает значение @error равным:
@error 0 = введённая строка допустима.
1 = нажата кнопка отмена (Cancel).
2 = время ожидания истекло.
3 = ошибка открытия окна ввода. Обычно причиной являются неправильные параметры.
4 = окно ввода не может быть отображёно ни на одном из мониторов.
5 = неправильно переданы параметры (width без height или left без top).

Размер окна ввода может быть изменён пользователем, но имеет минимальные размеры 190 x 115 пикселей . По умолчанию, размер окна равен 250 x 190 пикселей .

Длина возвращаемой строки не превышает 254 символа и, если введённая строка содержит символы возврата каретки или перевода строки, результат будет обрезан до первого появления этих символов.

Второй и последующий символы параметра password предназначены для ограничения пользовательского ввода. Используйте пробел в качестве первого символа, чтобы вводимые символы по-прежнему отображались. Использование символа M (англ.) в качестве второго символа параметра указывает что ввод какого-либо значения принудителен (англ. Mandatory). Ничего не случится при нажатии кнопки Ok, если в строке ввода нет какого-либо значения. В этом случае окно не будет закрыто.

Можно также указать максимальную длину строки ввода. Для этого служат последние символы параметра password (см. пример).

; Этот пример содержит параметры по умолчанию.
; $answer = InputBox(«Заголовок», «Пояснение», «Текст поля ввода», «», -1, -1, Default, Default, 0)

; Диалоговое окно появится в левом верхнем углу, отображая вводимые символы как есть.
$answer = InputBox ( «Вопрос» , «Где вы родились?» , «Планета Земля» , «» , — 1 , — 1 , 0 , 0 )

; Просит пользователя ввести пароль, вместо символов отображаются звёздочки. Не забудьте проверить это!
$passwd = InputBox ( «Проверка безопасности» , «Введите пароль.» , «» , «*» )

; Просит пользователя ввести 1 или 2 символа в поле ввода. Символ M в параметре пароля, означает, что пустая строка не принимаются и при нажатии OK ничего не произойдёт; символ 2 означает, что невозможно ввести более 2-х символов.
$value = InputBox ( «Тестирование» , «Введите 1 или 2 символа.» , «» , » M2″ )

Диалоговые окна в Дельфи (процедуры и функции, реализующие диалоговые окна)

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

Процедура ShowMessage, функции MessageDlg и MessageDlgPos отображают окно (панель) вывода сообщений, а функции InputBox и InputQuery — окно (панель) для ввода информации.

Процедура ShowMessage

Процедура ShowMessage (const Msg: String) отображает окно сообщения с кнопко ОК. Заголовок содержит название исполняемого файла приложения, а строка Msg выводится как текст сообщения.

Функция MessageDlg

Функция MessageDlg(const Msg: String; AType: TMsgDlgType; AButtons: TMsgDlgButtons; Helpctx: Longint) : word отображает окно сообщения в центре экрана и позволяет получить ответ пользователя. Параметр Msg содержит отображаемое сообщение.

Окно сообщения может относиться к различным типам и наряду с сообщением содержать картинки. Тип окна сообщения определяется параметром АТуре, который может принимать следующие значения:

  • mtWarning (окно содержит черный восклицательный знак в желтом треугольнике и заголовок Warning);
  • mtError (окно содержит белый косой крест в красном круге и заголовок Error);
  • mtInformation (окно содержит синюю букву «i» в белом круге и заголовок Information);
  • mtConfirmation (окно содержит синий знак «?» в белом круге и заголовок Confirmation);
  • mtCustom (окно не содержит картинки, в заголовке выводится название исполняемого файла приложения).

Параметр AButtons задает набор кнопок окна и может принимать любые комбинации следующих значений:

  • mbYes (кнопка Yes);
  • mbAbort (кнопка Abort);
  • mbNo (кнопка No);
  • mbRetry (кнопка Retry);
  • mbOk (кнопка OK);
  • mbIgnore (кнопка Ignore);
  • mbCancel (кнопка Cancel);
  • mbAll (кнопка All);
  • mbHelp (кнопка Help);

Для значения параметра AButtons имеются две константы — mbYesNoCancel и mbOKCancel, задающие предопределенные наборы кнопок:

  • mbYesNoCancel = [mbYes, mbNo, mbCancel];
  • mbOKCancel = [mbOK, mbCancel]

При нажатии любой из указанных кнопок (кроме кнопки Help) диалоговое окно закрывается, а результат (свойство ModalResult) возвращается функцией MessageDlg.

Параметр HelpCtx определяет контекст (тему) справки, которая появляется во время отображения диалогового окна при нажатии пользователем клавиши . Обычно! значение этого параметра равно нулю.

Пример использования функции MessageDlg:

При нажатии кнопки Button1 производится простейшая проверка даты. Код даты вводится в поле редактирования DateEdit1, размещенное в форме. Если длина даты меньше допустимой, выдается предупреждение с запросом на автоматическую коррекцию (см. скриншот). При утвердительном ответе пользователя в поле даты записывается текущая дата, при отрицательном — фокус передается полю ввода даты.

Функция MessageDlgPos

Функция MessageDlgPos(const Msg: String; AType: TMsgDlgType; AButtons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer) : Word отличается от функции MessageDlg наличием параметров Х и Y, управляющих положением окна на экране.

Функция InputBox

Функция InputBox(const ACaption, APrompt, ADefault: String): String отображает диалоговое окно для ввода строки текста. Окно выводится в центре экрана и содержит поле ввода с надписью, а также кнопки ОК и Cancel.

Параметр ACaption задает заголовок окна, а параметр APrompt содержит поясняющий текст к полю ввода. Параметр ADefault определяет строку, возвращаемую функцией при отказе пользователя от ввода информации (нажатие кнопки Cancel или клавиши ).

Пример использования функции InputBox:

Приведенная процедура отображает окно запроса на ввод фамилии пользователя (см. скриншот).

По умолчанию предлагается Иванов.

Функция InputQuery

Функция InputQuery (const ACaption, APrompt: String; var Value: String): Boolean отличается от функции InputBox тем, что вместо третьего параметра— строки по умолчанию— используется параметр Value, который в случае подтверждения ввода содержит введенную пользователем строку.

В качестве результата функция возвращает логическое значение, позволяющее определить, каким образом завершен диалог. Если нажата кнопка ОК, то функция возвращает значение True, если нажата кнопка Cancel или клавиша — значение False.

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

Кроме рассмотренных диалоговых окон, в Delphi имеется ряд других специализированных диалоговых окон, например диалоговое окно выбора каталога, вызываемое функцией Select Directory модуля FileCtrl.

Клуб программистов

Delphi programming


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

InputBox

отображение диалога с пользователем,
который требует ввод текстового ответа

|| function InputBox ( const Caption, Prompt, Default : string ) : string;

Описание:

Delphi функция InputBox осуществляет отображение диалога с пользователем. В диалоговом окне необходимо ввести текстовый ответ.

После нажатия кнопки Ok будет возвращено значение, введённое в диалоговом окне. Если пользователь ничего не ввёл или нажал кнопку Cancel, то будет передана пустая строка.

Пример кода:

var
value : string;

begin
// Keep asking the user for their town
repeat
value := InputBox(‘Test program’, ‘Please type your town’, ‘Cardiff’);
until value <> »;

// Show their name
ShowMessage(‘Your town is ‘+value);
end;

Результат выполнения:

A dialog is displayed asking for the user city,
with Cardiff given as the initial value.

InputBox — Функция Delphi

Displays an input dialog box that lets the user enter a string, double, or integer.

Call InputBox to bring up an input dialog box ready for the user to enter a string, double, or integer in its edit box.

ACaption is the caption of the dialog box.

APrompt is the text that prompts the user to enter input in the edit box.

ADefault is the value that appears in the edit box when the dialog box first appears.

AMin is the minimum value the user can enter into the edit box.

AMax is the maximum value the user can enter into the edit box.

Decimals does nothing.

Increment controls the amount by which the value in the spin control changes when the user clicks the up or down arrow. (It has no effect on values that the user types).

If the user chooses the Cancel button, InputBox returns the default value. If the user chooses the OK button, InputBox returns the value in the edit box.

Use the InputBox function when there is a default value that should be used when the user chooses the Cancel button (or presses Esc) to exit the dialog. If the application needs to know whether the user chooses OK or Cancel, use the InputQuery function instead.

Delphi InputBox для ввода пароля?

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

5 ответов

вы можете отправить сообщение Windows в элемент управления редактирования, созданный InputBox , который будет помечать элемент управления edit для ввода пароля. Код ниже взят изhttp://www.swissdelphicenter.ch/en/showcode.php? >

в XE2 в, InputBox() и InputQuery() были обновлены, чтобы изначально поддерживать маскировку TEdit ввод, хотя эта функция еще не была документирована. Если первый символ APrompt параметр имеет любое значение #32 тут TEdit.PasswordChar будет установлен в * , например:

InputBox вызывает функцию InputQuery в диалоговых окнах, которая создает форму динамически. Вы всегда можете сделать копию этой функции и изменить свойство PasswordChar TEdit.

Я не думаю, что Delphi включает такую вещь из коробки. Может быть, вы можете найти его в http://www.torry.net/ или в другом месте в сети. В противном случае просто напишите один сам — не должно быть так сложно. :- ) Вы даже можете посмотреть исходный код, если у вас есть «достаточно большая» версия Delphi.

вы можете использовать InputQuery вместо InputBox. Если задан аргумент TRUE, поле пароля будет замаскировано.

InputBox(Заголовок, подсказка, значение) MessageDlg(s,t,b,h) Среды ООП Delphi и Lazarus Коломна Информатика и ИКТ

    Максим Малявко 2 лет назад Просмотров:

1 Справочник по компонентам и функциям Delphi

2 Функции Delphi Функции ввода вывода InputBox(Заголовок, подсказка, значение) ShowMessage(s) MessageDlg(s,t,b,h) В результате выполнения функции на экране появляется диалоговое окно, в поле которого пользователь может ввести строку символов. Значением функции является введенная строка. Параметр значение задает значение функции «по умолчанию», т.е. строку, которая будет в поле редактирования в момент появления окна. Процедура ShowMessage(s)выводит окно, в котором находится сообщение и командная кнопка Ok. Выводит на экран диалоговое окно с сообщением s и возвращает код кнопки, щелчком на которой пользователь открыл окно. Параметр t определяет тип окна: mtwarning — внимание; mterror — ошибка; mtinformation — информация; mtconfirmation — запрос; mtcustom — пользовательское (без значка); Параметр b (множество заключенный в квадратные скобки список констант) задает командные кнопки диалогового окна (mbyes, mbno, mbok, mbcancel, mbhelp,, mbretry, mbignory и mball). Параметр h задает раздел справочной системы программы, который появится в результате нажатия кнопки Help или клавиши F1. Если справочная система не используется значение параметра должно быть 0. Значением функции может быть одна из констант: mrabort, mryes, mrok, mrretry, mrno, mrcancel, mrignory, mrall обозначающая соответствующую командную кнопку. 1

3 Функции математические Abs(n) Абсолютное значение n. Sqrt(n) Квадратный корень из n. Sqr(n) Квадрат n. Exp(n) Экспонента n. Ln(n) Натуральный логарифм n. Random(n) Sin( ) Cos( ) Arctan( ) Величина Случайное целое число в диапазоне от 0 до n-1 (перед первым обращением к функции необходимо вызвать функцию Randomize, которая выполнит инициализацию программного генератора случайных чисел) Синус выраженного в радианах угла Косинус выраженного в радианах угла Арктангенс выраженного в радианах угла угла тригонометрических функций должна быть выражена в радианах. Для преобразования величины угла из градусов в радианы используется формула: ( * ) / 180, где величина угла в градусах, число. Вместо константы можно использовать стандартную именованную константу PI. 2

4 Функции преобразования Chr(n) Символ, код которого равен n. IntToStr(k) Строка, являющаяся изображением целого k. FloatToStr(n) Строка, являющаяся изображением вещественного n. FloatToStrF(n,f,k,m) Format(s,[n1,n2. ]) Строка, являющаяся изображением вещественного n. При вызове функции указывают: f — формат; k точностью; m — количество цифр после десятичной точки. Формат числа определяет способ изображения числа: ffgeneral — универсальный; ffexponent — научный; fffixed — с фиксированной точкой; ffnumber — с разделителями групп разрядов; ffcarency — финансовый. Точность нужное общее количество цифр: 7 и менее для значения типа Single, 15 и менее для значения типа Double и 18 или меньше для значения типа Extended. Строка, являющаяся изображением значений n1,n2 и т. д. Способ преобразования значений в строку символов определяют управляющие символы, которые находятся в строке форматирования s. StrToInt(s) Целое, изображением которого является строка s. StrToFloat(s) Round(n) Trunc(n) Frac(n) Int(n) Вещественное, изображением, которого является строка s. Целое, полученное путем округления n по известным правилам. Целое, полученное путем отбрасывания дробной части n. Дробное, представляющее собой дробную часть вещественного n. Дробное, представляющее собой целую часть вещественного n. 3

5 Функции манипулирования датой и временем. Большинству функций манипулирования датами в качестве параметра передается переменная типа.tdatetime, в качестве которой, как правило, используется значение функции Now. Now DateToStr(dt) TimeToStr(dt) DayOf(dt) MonthOf(dt) WeekOf(dt) YearOf(dt) DayOfWeek(dt) StartOfWeek(s) HourOf(dt) MinuteOf(dt) SecondOf(dt) DecodeDate(dt,y,m,d) DecodeTime(dt,h,m,s,ms) FormatDateTime(s,dt) Системная дата и время переменная типа TDateTime. Строка символов, изображающая дату в формате dd:mm:yyyy. Строка символов, изображающая время в формате hh:mm:ss. День (номер дня в месяце), соответствующей дате, указанной в качестве параметра функции. Номер месяца, соответствующей дате, указанной в качестве параметра функции. Номер недели, соответствующей дате, указанной в качестве параметра функции. Год, соответствующий указанной дате. Номер дня недели, соответствующий указанной дате: 1-воскресенье, 2-понедельник, 3-вторник и т. д. Дата первого дня указанной недели. Количество часов. Количество минут Количество секунд. Возвращает год, месяц и день, представленные отдельными числами. Возвращает время (часы, минуты, секунды и миллисекунды) представленные отдельными числами. Строка символов, представляющая собой дату и время. Способ представления задает строка формата s, например, строка dd/mm/yyyy задает, что значением функции является дата, а строка hh:mm время. 4

Илон Маск рекомендует:  Ссылки в HTML

6 Компоненты Delphi Form. Форма (объект тип TForm) является основой программы. Свойства формы определяют вид окна программы. Caption Top Left Width Height ClientWidth ClientHeigth BorderStyle BorderIcons Icon Color Font Canvas Имя В программе имя формы используется для управления формой и доступа к компонентам Текст заголовка. Расстояние от верхней границы формы до верхней границы экрана. Расстояние от левой границы формы до левой границы экрана. Ширина Высота Ширина рабочей (клиентской) области формы, т.е. без учета ширины левой и правой границ. Высота рабочей (клиентской) области формы, т.е. без учета ширины высоты заголовка и высоты нижней границы. Вид границы. Граница может быть обычной (bssizeable), тонкой (bssingle), или отсутствовать(bsnone). Если у окна обычная граница, то во время работы программы пользователь может при помощи мыши изменить размер окна. Изменить размер окна с тонкой границей нельзя. Если граница отсутствует, то на экран во время работы программы будет выведено окно без заголовка. Положение и размер такого окна во время работы программы изменить нельзя. Кнопки управления окном. Значение свойства определяет, какие кнопки управления будут доступны пользователю во время работы программы. Значение свойства задается путем присвоения значений уточняющим свойствам bisystemmenu, biminimize, bimaximize, bihelp. bisystemmenu определяет доступность кнопки Свернуть и кнопки системного меню, biminimize кнопки Свернуть, bimaximize кнопки Свернуть, bihelp кнопки вывода справочной информации. Значок в заголовке диалогового окна, обозначающий кнопку вывода системного меню. Цвет фона. Цвет можно задать, указав название цвета или привязку к текущей цветовой схеме операционной системы. Во втором случае цвет определяется текущей цветовой схемой, выбранным компонентом привязки и меняется при изменении цветовой схемы операционной системы. Шрифт. Шрифт, используемый по «умолчанию» компонентами, находящимися на поверхности Изменение свойства Font формы приводит к автоматическому изменению свойства Font компонента, располагающегося на поверхности То есть компоненты наследуют свойство Font от формы (имеется возможность запретить наследование). Поверхность, на которую можно вывести графику. 5

7 Label Label Компонент (Label) предназначен для вывода текста на поверхность Свойства компонента формы определяют вид и расположение текста. Caption Left Top Width Height AutoSize WordWrap Alignment Font ParentFont Color Transparent Visible Имя компонента. Используется в программе для доступа к компоненту и его свойствам. Отображаемый текст. Расстояние от левой границы поля вывода до левой границы Расстояние от верхней границы поля вывода до верхней границы Ширина поля вывода. Высота поля вывода. Признак того, что размер поля определяется его содержимым. Признак того, что слова, которые не помещаются в текущей строке, автоматически переносятся на следующую строку (значение свойства AutoSize должно быть False). Задает способ выравнивания текста внутри поля. Текст может быть выровнен по левому краю (taleftjustify), по центру (tacenter), или по правому краю (tarightjustify). Шрифт, используемый для отображения текста. Уточняющие свойства определяют способ начертания символов(font.), размер (Font.Size) и цвет символов(font.color). Признак наследования компонентом характеристик шрифта формы, на которой находиться компонент. Если значение свойства равно True, то текст выводиться шрифтом, установленным для Цвет фона области вывода текста. Управляет отображением фона области вывода текста. Значение True делает область вывода текста прозрачной, (область не закрашивается цветом, заданным свойством Color). Позволяет скрыть текст (False) или сделать его видимым (True). 6

8 Edit Edit Компонент (Edit) представляет из себя поле ввода-редактирования строки символов. Text Left Top Width Height Font ParentFont Enabled Visible Имя компонента. Используется в программе для доступа к компоненту и его свойствам, в частности для доступа к тексту, введенному в поле редактирования. Текст, находящийся в поле ввода и редактирования. Расстояние от левой границы компонента до левой границы Расстояние от верхней границы компонента до верхней границы Ширина поля. Высота поля. Шрифт, используемый для отображения вводимого текста. Признак наследования компонентом характеристик шрифта формы, на которой находиться компонент. Если значение свойства равно True, то при изменении свойства Font формы автоматически меняется значение свойства Font компонента. Используется для ограничения возможности изменить текст в поле редактирования. Если значение свойства равно False, то текст в поле редактирования изменить нельзя. Позволяет скрыть текст (False) или сделать его видимым (True). 7

9 Button Button Компонент (Button) представляет собой командную кнопку. Caption Left Top Width Height Enabled Visible Hint ShowHint Имя компонента. Используется в программе для доступа к компоненту и его свойствам. Текст на кнопке. Расстояние от левой границы кнопки до левой границы Расстояние от верхней границы кнопки до верхней границы Ширина кнопки. Высота кнопки. Признак доступности кнопки. Если значение свойства равно True, то кнопка доступна. Если значение свойства равно False, то кнопка недоступна, например, в результате щелчка на кнопке событие Click не возникает. Позволяет скрыть текст (False) или сделать его видимым (True). Подсказка текст, который появляется рядом с указателем мыши при позиционировании указателя на командной строке (для того чтобы текст появился, надо чтобы значение свойства ShowHint было True). Разрешает (True) или запрещает (False) отображение подсказки при позиционировании указателя на кнопке. 8

10 Memo Memo Компонент (Memo) представляет из себя элемент редактирования текста, который может состоять из нескольких строк. Text Lines Lines.Count Left Top Width Height Font ParentFont Имя компонента. Используется в программе для доступа к компоненту и его свойствам, в частности для доступа к тексту, введенному в поле редактирования. Текст, находящийся в поле Memo. Рассматривается как единое целое. Массив строк, соответствующий содержимому поля. Доступ к строке осуществляется по номеру. Строки нумеруются с нуля. Количество строк текста в поле Memo. Расстояние от левой границы поля до левой границы Расстояние от верхней границы поля до верхней границы Ширина поля. Высота поля. Шрифт, используемый для отображения вводимого текста. Признак наследования свойств шрифта родительской 9

11 RadioButton RadioButton Компонент (RadioButton) представляет собой зависимую кнопку, состояние которой определяется состоянием других кнопок группы. Если в диалоговом окне надо организовать несколько групп переключателей, то каждую группу следует представить компонентом RadioGroup. Caption Checked Left Top Width Height Font ParentFont Имя компонента. Используется в программе для доступа к компоненту и его свойствам. Текст, который находиться справа от кнопки. Состояние, внешний вид кнопки: если кнопка выбрана, то значение True, если не выбрана значение False. Расстояние от левой границы флажка до левой границы Расстояние от верхней границы флажка до верхней границы Ширина поля вывода поясняющего текста Высота поля вывода поясняющего текста. Шрифт, используемый для отображения поясняющего текста. Признак наследования характеристик шрифта родительской 10

12 CheckBox CheckBox Компонент (CheckBox) представляет собой независимую кнопку (переключатель). Caption Checked State AllowGrayed Left Top W >

13 ListBox ListBox Компонент (ListBox) представляет собой список, в котором можно выбрать нужный элемент. Items Count Sorted ItemIndex Left Top Width Height Font ParentFont Имя компонента. Используется в программе для доступа к компоненту и его свойствам. Элементы списка массив строк Количество элементов списка Признак необходимости автоматической сортировки (True) после добавления очередного элемента. Номер выбранного элемента. Элементы списка нумеруются с нуля. Если в списке ни один из элементов не выбран, то значение равно минус 1. Расстояние от левой границы списка до левой границы Расстояние от верхней границы списка до верхней границы Ширина поля списка. Высота поля списка. Шрифт, используемый для отображения элементов списка. Признак наследования свойств шрифта родительской 12

14 ComboBox ComboBox Компонент (ComboBox) дает возможность ввести данные в поле редактирования путем набора на клавиатуре или выбором из списка. Text Items Count Sorted ItemIndex DropDownCount Left Top Width Height Font ParentFont Имя компонента. Используется в программе для доступа к компоненту и его свойствам. Текст, находящийся в поле ввода-редактирования Элементы списка массив строк Количество элементов списка Признак необходимости автоматической сортировки (True) после добавления очередного элемента. Номер выбранного элемента. Элементы списка нумеруются с нуля. Если в списке ни один из элементов не выбран, то значение равно минус 1. Количество отображаемых элементов в раскрытом списке. Если количество элементов списка больше чем DropDownCont, то появляется вертикальная полоса прокрутки. Расстояние от левой границы компонента до левой границы Расстояние от верхней границы компонента до верхней границы Ширина компонента. Высота компонента (поля ввода-редактирования). Шрифт, используемый для отображения элементов списка. Признак наследования свойств шрифта родительской 13

15 StringGrid StringGrid Компонент (StringGrid) представляет собой таблицу, ячейки которой содержат строки символов. ColCount RowCount DefaultColWidth DefaultRowHeight FixedCols FixedRows Cells GridLineWidth Left Top Width Height Options.goEditing Options.goTab Options.goAlwaysEditor Font ParentFont Имя компонента. Используется в программе для доступа к компоненту и его свойствам. Количество колонок таблицы. Количество строк таблицы Ширина колонок таблицы. Высота строк таблицы. Количество зафиксированных слева колонок таблицы. Зафиксированные колонки выделяются цветом и при горизонтальной прокрутке таблицы остаются на месте. Количество зафиксированных сверху колонок таблицы. Зафиксированные строки выделяются цветом и при вертикальной прокрутке таблицы остаются на месте. Соответствующий таблице двумерный массив. Ячейки таблицы, находящейся на пересечении столбца с номером col и строки с номером row, соответствует элемент cells [col, row]. Ширина линий, ограничивающих ячейки таблицы. Расстояние от левой границы поля таблицы до левой границы Расстояние от верхней границы поля таблицы до верхней границы Ширина поля таблицы. Высота поля таблицы. Признак допустимости редактирования содержимого ячеек таблицы. True редактирование разрешено, False — запрещено. Разрешает (True) или запрещает (False) использование клавиши Tab для перемещения курсора в следующую ячейку таблицы. Признак нахождения компонента в режиме редактирования. Если значение свойства False, то для того, чтобы в ячейке появился курсор, надо начать набирать текст, нажать клавишу F2 или сделать двойной щелчок мышью. Шрифт, используемый для отображения содержимого ячеек таблицы. Признак наследования характеристик шрифта 14


16 Image Image Компонент (Image) обеспечивает вывод на поверхность формы иллюстраций, представленных в bmp формате (чтобы компонент можно было использовать для отображения иллюстраций в формате JPG, надо подключить модуль JPEG указать имя модуля в директиве uses). Picture Width, Height Proportional Strech AutoSize Center Visible Canvas Иллюстрация, которая отображается в поле компонента. Размер компонента. Если размер компонента меньше размера иллюстрации, и значение свойств AutoSize, Strech и Proportional равно False, то изображается часть иллюстрации. Признак автоматического масштабирования картинки без искажения. Чтобы масштабирование было выполнено, значение свойства AutoSize должно быть False. Признак автоматического масштабирования (сжатия или растяжения) иллюстрации в соответствии с реальным размером компонента. Если размер компонента не пропорционален размеру иллюстрации, то иллюстрация будет искажена. Признак автоматического изменения размера компонента в соответствии с реальным размером иллюстрации. Признак определяет расположение картинки в поле компонента по горизонтали, если ширина картинки меньше ширины поля компонента. Если значение свойства равно False, то картинка прижата к правой границе компонента, если True то картинка располагается по центру. Отображается ли компонент и соответственно, иллюстрация на поверхности Поверхность, на которую можно вывести графику. 15

17 Timer Timer Компонент (Timer) обеспечивает генерацию последовательности событий OnTimer. Interval Enabled Имя компонента. Используется для доступа к компоненту. Период генерации событий. Задается в миллисекундах OnTimer. Разрешение работы. Разрешает (значение True) или запрещает (значение False) генерацию события OnTimer. 16

18 Animate Animate Компонент (Animate) позволяет воспроизводить простую, не сопровождаемую звуком анимацию, кадры которой находятся в AVI-файле. File StartFrame StopFrame Activate Color Transparent Repetitions Имя компонента. Используется для доступа к свойствам компонента и управлением его поведением. Имя AVI-файла, в котором находится анимация, отображаемая с помощью компонента. Номер кадра, с которого начинается отображение анимации. Номер кадра, на котором заканчивается отображение анимации. Признак активизации процесса отображения кадров анимации. Цвет фона компонента (цвет «экрана»), на котором воспроизводится анимация. Режим использования «прозрачного» цвета при отображении анимации. Количество повторов отображения анимации. 17

19 MediaPlayer MediaPlayer Компонент (MediaPlayer) позволяет воспроизводить видеоролик, звук и сопровождаемую звуком анимацию. DeviceType File AutoOpen Display VisibleButtons Имя компонента. Используется для доступа к свойствам компонента и управлением работой плеера. Тип устройства. Определяет конкретное устройство, которое представляет из себя компонент MediaPlayer. Тип устройства задается именованной константой: dtautoselect — тип устройства определяется автоматически; dtvaweaudio — проигрыватель звука; dtavivideo — видеопроигрыватель; dtcdaudio — CD-проигрыватель Имя файла, в котором находится воспроизводимый звуковой фрагмент или видеоролик. Признак автоматического открытия сразу после запуска программы, файла видеоролика или звукового фрагмента. Определяет компонент, на поверхности которого воспроизводится видеоролик (обычно в качестве экрана для отображения видео используют компонент Panel). Составное свойство. Определяет видимые кнопки компонента. Позволяет сделать невидимыми некоторые кнопки. 18

20 SpeedButton SpeedButton Компонент (SpeedButton) представляет собой кнопку, на поверхности которой находится картинка. Имя компонента. Используется в программе для доступа к компоненту и его свойствам. Битовый образ, в котором находятся картинки для каждого из состояний кнопки. В битовом образе может быть до четырех изображений кнопки. Glyph Недоступная Зафиксированная Обычная Нажатая мышью Пример NumGlyphs Flat GroupIndex Down Left Top Width Height Enabled Visible Hint ShowHint Количество картинок в битовом образе Glyph. определяет вид кнопки (наличие границы). Если значение свойства равно True, то граница кнопки появляется только при позиционировании указателя мыши на кнопке. Идентификатор группы кнопок. Кнопки, имеющие одинаковый идентификатор группы, работают подобно переключателям: нажатие одной из кнопок группы вызывает срабатывание других кнопок этой группы. Идентификатор состояния кнопки. Изменить значение свойств можно, если значение свойства GroupIndex не равно 0. Расстояние от левой границы кнопки до левой границы Расстояние от верхней границы кнопки до верхней границы Ширина кнопки. Высота кнопки. Признак доступности кнопки. Если значение свойства равно True, то кнопка доступна. Если значение свойства равно False, то кнопка недоступна. Позволяет скрыть кнопку (False) или сделать ее видимой (True). Подсказка текст, который появляется рядом с указателем мыши при позиционировании указателя на командной кнопке (для того чтобы текст появился, надо чтобы значение свойства ShowHint было True). Разрешает (True) или запрещает (False) отображение подсказки при позиционировании указателя на кнопке. 19

Илон Маск рекомендует:  Как выбрать наушники для компьютера и для плеера. Советы

21 UpDown UpDown Компонент (UpDown) представляет собой две кнопки, используя которые можно изменить значение переменной-счетчика на определенную величину. Увеличение или уменьшение значения происходит при каждом щелчке на одной из кнопок. Position Min Max Increment Associate Orientation Имя компонента. Используется для доступа к свойствам компонента и управлением его поведением. Счетчик. Значение свойства изменяется в результате щелчка на кнопке Up (увеличивается) или Down (уменьшается). Диапазон изменения определяют свойства Min и Max, величину изменения свойство Increment. Нижняя граница диапазона изменения свойства Position. Верхняя граница диапазона изменения свойства Position. Величина, на которую изменяется значение свойства Position в результате щелчка на одной из кнопок компонента. Определяет компонент (Edit-поле вводаредактирования), используемый в качестве индикатора значения свойства Position. Если значение свойства задано, то при изменении содержимого поля редактирования, автоматически меняется значение свойства Position. Задает ориентацию кнопок компонента. Кнопки могут быть ориентированы вертикально (udvertical) и горизонтально (udhorizontal). 20

22 Table Table Компонент (Table) представляет собой всю таблицу базы данных. Database Table TableType Active Имя компонента. Используется для доступа к свойствам компонента и управлением его поведением. Имя базы данных, частью которой является таблица (файл данных), для доступа, к которой используется компонент. В качестве значения свойства следует применять псевдоним базы данных. Имя файла данных (таблицы данных), для доступа, к которой используется компонент. Тип таблицы. Таблица может быть набором данных в формате Paradox (ttparadox), DBase (ttdbase), FoxPro (ttfoxpro) или представлять собой форматированный текстовый файл (ttascii). Признак того, что таблица активна (файл данных открыт). В результате присвоения свойству значения True. происходит открытие файла таблицы. 21

23 Query Query Компонент (Table) представляет собой часть таблицы базы данных — записи, содержимое которых удовлетворяет критерию SQL-запроса к таблице. SQL Active Имя компонента. Используется компонентом DataSource для связи результата выполнения запроса (набора записей) с компонентом, обеспечивающим просмотр записей, например DBGrid. Записаный на языке SQL запрос к базе данных (к таблице). При присвоении свойству значения True активизирует выполнение запроса. DataSource DataSource Компонент (DataSource) обеспечивает связь между данными, представленными компонентом Table или Query и компонентами отображения данных (DBEdit, DBMemo, DBGrid). DataSet Имя компонента. Используется компонентом отображения данных для доступа к компоненту и, следовательно, к данным, связь с которыми обеспечивает компонент. Компонент, представляющий собой входные (Table или Query). 22

24 DBEdit, DBMemo, DBText DBText DBEdit DBMemo Компоненты DBEdit и DBMemo обеспечивают просмотр и редактирование полей записи базы данных, компонент DBText только просмотр. DataSource DataField Имя компонента. Используется для доступа к свойствам компонента. Компонент-источник данных. Поле базы данных, для отображения или редактирования которого используется компонент. 23

25 Columns Среды ООП Delphi и Lazarus Коломна Информатика и ИКТ DBGrid DBGrid Компоненты DBGrid используется для просмотра и редактирования базы данных в режиме таблицы. DataSource Columns Filed Width Font Color Alignment Title.Caption Title.Alignment Title.Color Title.Font Options.dgTitles Options.dgIndicator Options.dgColumnResize Options.dgColLines Options.dgRowLines Имя компонента. Используется для доступа к свойствам компонента. Источник отображаемых в таблице данных (компонент DataSource). Columns представляет собой массив компонентов типа Column, каждый из которых определяет колонку таблицы и отображаемую информацию. Поле записи, содержимое которого выводится в колонке. Ширина колонки в пикселях. Шрифт, используемый для вывода текста в ячейках колонки. Цвет фона колонки. Задает способ выравнивания текста в ячейках колонки. Текст может быть выровнен по левому краю (taleftjustify), по центру (tacenter), или по правому краю (tarightjustify). Заголовок колонки. Значением по умолчанию является имя поля записи. Задает способ выравнивания заголовка колонки. Заголовок может быть выровнен по левому краю (taleftjustify), по центру (tacenter), или по правому краю (tarightjustify). Цвет фона заголовка колонки. Шрифт заголовка колонки. Разрешает вывод строки заголовка столбцов. Разрешает вывод колонки индикатора. Во время работы с базой данных текущая запись помечается в колонке индикатора треугольником, новая запись звездочкой, редактируемая специальным значком. Разрешает менять во время работы программы ширину колонок таблицы. Разрешает выводить линии, разделяющие колонки таблицы. Разрешает выводить линии, разделяющие строки таблицы. 24

26 DBNavigator DBNavigator Компоненты DBNavigator обеспечивают перемещение указателя текущей записи, активизацию режима редактирования, добавления и удаления записей. Компонент представляет собой совокупность командных кнопок. Кнопка Обозначение Действие К первой nbfirst К предыдущей nbprior К следующей К последней nbnext nblast Указатель текущей записи перемещается к первой записи файла данных. Указатель текущей записи перемещается к предыдущей записи файла данных. Указатель текущей записи перемещается к следующей записи файла данных. Указатель текущей записи перемещается к последней записи файла данных. Добавить nbinsert В файл данных добавляется новая запись. Удалить nbdelete Удаляется текущая запись файла данных. Редактирование Сохранить Отменить Обновить Устанавливает режим редактирования nbedit текущей записи. Изменения, внесенные в текущую запись, nbpost записываются в файл данных. Отменяет внесенные в текущую запись Cancel изменения. nbrefresh Записывает внесенные изменения в файл. DataSource VisibleButtons Имя компонента. Используется для доступа к свойствам компонента. Имя компонента, являющегося источником данных. В качестве источника данных может выступать база данных (компонент DataBase), таблица (компонент Table) или результат выполнения запроса (компонент Query). Видимые командные кнопки. 25

27 Графика. Canvas Canvas это поверхность (формы или компонента Image), на которой соответствующие методы могут вычерчивать графические примитивы. Вид графических элементов определяют свойства поверхности, на которой эти элементы вычерчиваются. Метод OutText(x,y,s) Draw(x,y,b) LineTo(x,y) MoveTo(x,y) PolyLine(pl) Polygon(pl) Ellipse(x1,y1,x2,y2) Выводит строку s от точки с координатами (x,y). Шрифт определяет свойство Font поверхности (Canvas), на которую выводится текст, цвет закраски области вывода текста свойство Brush этой же поверхности. Выводит от точки с координатами (x,y) битовый образ b. Если значение свойства Transparent поверхности, на которую выполняется вывод, равно True, то точки, цвет которых совпадает с цветом левой нижней точки битового образа, не отображаются. Вычерчивает линию из текущей точки в точку с указанными координатами. Вид линии определяет свойство Pen. Перемещает указатель текущей точки в точку с указанными координатами. Вычерчивает ломаную линию. Координаты точек перегиба задает параметр pl массив структур типа Tpoint. Если первый и последний элементы массива одинаковы, то будет вычерчен замкнутый контур. Вид линии определяет свойство Pen. Вычерчивает и закрашивает многоугольник. Координаты углов задает параметр pl массив структур типа Tpoint. Первый и последний элементы массива должны быть одинаковыми. Вид границы определяет свойство Pen. цвет и стиль закраски внутренней области — свойство Brush. Вычерчивает эллипс, окружность или круг. Параметры x1,y1,x2,y2 задают размер прямоугольника, в который вписывается эллипс. Вид линии определяет свойство Pen. (х1,у1) (х1,у1) (х2,у2) (х2,у2) 26

28 Arc(x1,y1,x2,y2,x3,y3,x4,y4) Вычерчивает дугу. Параметры x1,y1,x2,y2 определяют эллипс, из которого вырезается дуга, параметры x3,y3,x4,y4 координаты концов дуги. Дуга вычерчивается против часовой стрелки от точки (x3,y3) к точке (x4,y4). Вид границы определяет свойство Pen. цвет и способ закраски внутренней области — свойство Brush. (х1,у1)(х3,у3) (х1,у1) (х4,у4) (х3,у3) Rectangle(x1,y1,x2,y2) RoundRec(x1,y1,x2,y2,x3,y3) (х2,у2)(х4,у4) (х2,у2) Вычерчивает прямоугольник. Параметры x1,y1,x2,y2 задают координаты верхнего левого и нижнего правого углов. Вид границы определяет свойство Pen. цвет и способ закраски внутренней области — свойство Brush. Вычерчивает прямоугольник со скругленными углами. Параметры x1,y1,x2,y2 задают координаты верхнего левого и нижнего правого углов, x3,y3 — радиус скривления. Вид линии определяет свойство Pen. цвет и способ закраски внутренней области — свойство Brush. (х1,у1) х3 у3 (х2,у2) 27

29 Свойства объекта Brush Свойства объекта Pen Среды ООП Delphi и Lazarus Коломна Информатика и ИКТ Transparent Pen Color Style Width Brush Признак использования «прозрачного» цвета при выводе битового образа методом Draw. Если значение свойства равно True, то точки, цвета которых совпадают с цветом левой нижней точки битового образа, не отображаются. Pen представляет собой объект, уточняющие свойства которого определяют цвет, толщину и стиль линий, вычерчиваемых методами вывода графических примитивов. Цвет линии: clblack черный; clmaroon каштановый; clgreen зеленый; clolive оливковый; clnavy — темно-синий; clpurple розовый; clteal — зелено-голубой; clgray серый; clsilver серебристый; clred красный; cllime салатный; clblue синий; clfuchsia — ярко-розовый; claqua бирюзовый; clwhite белый. Вид линии. Линия может быть: pssolid — сплошная psdash — пунктирная (длинные штрихи) psdot — пунктирная (короткие штрихи) psdashdot — пунктирная (чередование длинного и короткого штриха) psdashdotdot — пунктирная (чередование одного длинного и двух коротких штрихов) psclear — не отображается (используется, если не надо изображать границу, например, прямоугольника) Толщина линии задается пикселях. Толщина пунктирной линии не может быть больше 1. Brush представляет собой объект, уточняющие свойства которого определяют цвет и стиль закраски областей, вычерчиваемых методами вывода графических примитивов. Color Цвет закрашивания замкнутой области (цвета смотри в свойстве Color объекта Pen) 28

30 Font Style Стиль (тип) заполнения области bssolid — сплошная заливка bsclear — область не закрашивается bshorizontal — горизонтальная штриховка bsvertical — вертикальная штриховка bsfdiagonal — диагональная штриховка с наклоном линий вперед bsbdiagonal — диагональная штриховка с наклоном линий назад bscross — горизонтально-вертикальная штриховка, в клетку bsdiagcross — диагональная штриховка, в клетку Font представляет собой объект, уточняющие свойства которого определяют шрифт (название размер, цвет, способ оформления) используемый для вывода на поверхность холста текста. 29

31 Событие OnClick OnDbClick OnMouseDown OnMouseUp OnMouseMove OnKeyPress OnKeyDown OnKeyUp OnCreate OnPaint On Enter OnExit Тип исключения EConvertError EZeroDivide EFOpenError EInOutError EDBEngineError События. При щелчке кнопкой мыши Происходит При двойном щелчке кнопкой мыши При нажатии кнопки мыши При отпускании кнопки мыши При перемещении мыши При нажатии клавиши клавиатуры При нажатии клавиши клавиатуры. События OnKeyDown и OnKeyPress это чередующиеся, повторяющиеся события, которые происходят до тех пор, пока не будет отпущена удерживаемая клавиша (в этот момент происходит событие OnKeyUp). При отпускании нажатой клавиши клавиатуры. При создании объекта (формы, элемента управления). Процедура обработки этого события обычно используется для инициализации переменных, выполнения подготовительных действий. При появлении окна на экране в начале работы программы, после появления части окна, которая, например, была закрыта другим окном и в других случаях. Событие сообщает о необходимости обновить (перерисовать) окно. При получении элементом управления фокуса. При потере элементом управления фокуса. Исключения. Возникает При выполнении преобразования, если преобразуемая величина не может быть приведена к требуемому виду. Наиболее часто возникает при преобразовании строки символов в число. При выполнении операции деления, если делитель равен нулю. При обращении к файлу, например при попытке загрузить файл иллюстрации при помощи метода LoadFromFile. Наиболее частой причиной является отсутствие требуемого файла или, в случае использования сменного диска, отсутствие диска в накопителе. При обращении к файлу, например при попытке открыть для чтения (инструкция reset) несуществующий файл. При выполнении операции с базой данных, например при попытке, выполнить SQL запрос к несуществующей таблице. 30

32 Оглавление. Глава Функции Delphi Компоненты Delphi Название страницы Функции ввода вывода 1 Функции математические 2 Функции преобразования 3 Функции манипулирования датой и временем. 4 Form (Форма) 5 Label(Надпись) 6 Edit (Поле ввода-редактирования строки символов). 7 Button(Командная кнопка) 8 Memo(Поле ввода-редактирования нескольких строки символов). 9 RadioButton(Зависимая кнопка) 10 CheckBox(Независимая кнопка) 11 ListBox(Список выбора элемента) 12 ComboBox(Список выбора элемента или его ввода с клавиатуры) StringGrid (Таблица с ячейками — символами) Image (Иллюстрация) 15 Timer(Генерация последовательности событий) Animate (Простая, не сопровождаемая звуком анимация) MediaPlayer (Воспроизводить видеоролик) SpeedButton (Кнопка с картинкой) UpDown (Изменение счетчика) 20 Table(Таблица базы данных) 21 Query(Часть таблица базы данных удовлетворяющей запросу) 22 DataSource(Связь между данными) 22 DBEdit, DBMemo, DBText (Просмотр и редактирование полей 23 записи базы данных) DBGrid(Просмотр и редактирование базы данных в режиме таблицы) 24 31

33 Графика (Canvas), методы Графика (Canvas), свойства DBNavigator (перемещение указателя текущей записи, активизацию режима редактирования, добавления и удаления записей) OutText(x,y,s) (Вывод строки в заданной точке) Draw(x,y,b) (Вывод битового образа от заданной точки) LineTo(x,y)(Вычерчивание линии из текущей точки) MoveTo(x,y) (Перемещение указателя в заданную точку) PolyLine(pl) (Вычерчивание ломаной линии) Polygon(pl) (Вычерчивание многоугольника) Ellipse(x1,y1,x2,y2) (Вычерчивание эллипса) Arc(x1,y1,x2,y2,x3,y3,x4,y4) (Вычерчивание дуги) Rectangle(x1,y1,x2,y2) (Вычерчивание прямоугольника) RoundRec(x1,y1,x2,y2,x3,y3) (Вычерчивание прямоугольника с закругленными углами) Pen (свойства линии) 28 Brush (свойства области заполнения) События. Возможные события 30 Исключения. Ошибки

inputbox delphi

Автор Alex задал вопрос в разделе Другие языки и технологии

Delphi, как пользоваться функцией InputBox? и получил лучший ответ

Ответ от Sm[гуру]
Так как написано в стандартной справке.
А справка писана не для Пушкина, а для тебя.
sm
Просветленный
(32176)
ACaption is the caption of the dialog box.
APrompt is the text that prompts the user to enter input in the edit box.
ADefault is the value that appears in the edit box when the dialog box first appears.
AMin is the minimum value the user can enter into the edit box.
AMax is the maximum value the user can enter into the edit box.
Decimals does nothing.
Increment controls the amount by which the value in the spin control changes when the user clicks the up or down arrow. (It has no effect on values that the user types).
If the user chooses the Cancel button, InputBox returns the default value. If the user chooses the OK button, InputBox returns the value in the edit box.
Use the InputBox function when there is a default value that should be used when the user chooses the Cancel button (or presses Esc) to exit the dialog. If the application needs to know whether the user chooses OK or Cancel, use the InputQuery function instead.

Ввод и вывод данных

Следует иметь в виду, что значение функции InputBox строкового (String) типа. Поэтому если программе требуется получить значение числового типа, то введен­ная строка должна быть преобразована в число при помощи соответствующей функ­ции преобразования.

Ввод данных из поля редактирования осуществляется обращением к свойству Text этого поля, т.е. Edit1.Text

Следует иметь в виду, что свойство Техt представляет собой строку.

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

Сообщение – выражение строкового типа.

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

Функция MessageDlg ( const : String , Type , Buttons , Help ): Word – отображает окно сообщения в центре экрана и позволяет получить ответ пользователя. Параметр const содержит текст сообщения.

Занятие 9 Циклы, функция InputBox, работа с массивами в Delphi

Назва Занятие 9 Циклы, функция InputBox, работа с массивами в Delphi
Дата конвертації 03.01.2013
Розмір 153 Kb.
Тип Документи
1. /Курсы Delphi/lesson1.doc
2. /Курсы Delphi/lesson10.doc
3. /Курсы Delphi/lesson11.doc
4. /Курсы Delphi/lesson12.doc
5. /Курсы Delphi/lesson2.doc
6. /Курсы Delphi/lesson3.doc
7. /Курсы Delphi/lesson4.doc
8. /Курсы Delphi/lesson5.doc
9. /Курсы Delphi/lesson6.doc
10. /Курсы Delphi/lesson7.doc
11. /Курсы Delphi/lesson8.doc
12. /Курсы Delphi/lesson9.doc
Занятие 1 Первое знакомство с delphi, первое приложение в Delphi
Занятие 10 Работа с массивами в Delphi, использование компонентов ListBox и ComboBox при работе с массивами
Занятие 11 Анимация
Занятие 12 «Проект Кроссворд на Delphi» Проект «кроссворд»
Занятие 2 Понятиe свойств в Delphi. Приложение, в котором изображение перемещается по форме за счет изменения значений егосвойств
Занятие Процедуры обработки события, понятие метода в Delphi Приложение «Загадка»
Занятие 4 Объекты и классы в Delphi. Приложение, в котором форма перемещается по экрану компьютера
Занятие 5 Знакомство с компонентами MediaPlayer и OpenDialog. Музыкальное оформление приложений, созданных в Delphi
Занятие 6: Приложения с несколькими формами
Занятие 7 «Типы данных в Delphi, постоянные и переменные величины»
Занятие 8 Процедуры и функции, условный оператор if
Занятие 9 Циклы, функция InputBox, работа с массивами в Delphi

Занятие 9 Циклы, функция InputBox, работа с массивами в Delphi

Занятие посвящено операторам циклам, реализующим циклическую алгоритмическую конструкцию в Object Pascal, функцие InputBox и работе с массивами.

  1. Циклические операторы (операторы повторений)

В языке Object Pascal есть три оператора, с помощью которых можно запрограммировать повторяющиеся фрагменты программ.

1.1 Счетный оператор цикла For

Счетный оператор цикла For имеет такую структуру:

for, to, do – зарезервированные слова (для, до, выполнить);

— переменная типа Integer(точнее, любого порядкового типа);

— начальное значение – выражение того же типа;

— конечное значение – выражение того же типа;

— оператор Object Pascal;

При выполнении оператора for сначала вычисляется выражение и осуществляется присваивание: := . После этого циклически повторяется:

  • проверка условия ; если условие не выполнено, оператор for завершает свою работу;
  • выполнение оператора ;
  • наращивание переменной на единицу.

Условие, управляющее работой оператора for, проверяется перед выполнением оператора : если условие не выполняется в самом начале работы оператора for, исполняемый оператор не будет выполнен ни разу.

Шаг наращивания параметра цикла строго постоянен и равен +1. Существует другая форма оператора

Замена зарезервированного слова to на downto означает, что шаг наращивания параметра цикла равен –1, а управляющее условие приобретает вид: = .

    1. Приложение, в котором вычисляется факториал натурального числа N

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

На форме с именем fmFactorial разместите следующие компоненты:

edinput (компонент edit ) – для того, чтобы пользователь ввел исходное натуральное число;

edResult (компонент edit) – для выведения результата – факториала исходного числа;

bbRun (командная кнопка) – после щелчка по которой будут производиться вычисления.

Форма будет выглядеть приблизительно так:


Далее приведем код с использованием оператора for:

if edInput.Text =» then Exit; //если число не введено

Fact :=1; //начальное значение факториала

end;

    1. Оператор цикла WHILE с предпроверкой условия

Один из операторов повторений, которые проверяют условие выполнения или повторения цикла, но не связан с изменением счетчика цикла – оператор While c предпроверкой условия:

while, do – зарезервированные слова (пока выполняется условие делать);

— выражение логического типа;

— оператор Object Pascal.

Если выражение имеет значение True, то выполняется , после чего вычисления выражения и его проверка повторяются. Если имеет значение False, оператор while прекращает свою работу.

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

Для того, чтобы попробовать работу оператора While, сделаем приложение, в котором для введенного пользователем произвольного натурального числа вычисляется ,ближайшая к нему (с меньшей стороны) степень числа 2.

На форме с именем fmStep2 разместите следующие компоненты:

EdInput (компонент edit ) – для того, чтобы пользователь ввел исходное натуральное число;

edResult (компонент edit) – для выведения результата –ближайшей степени числа 2;

bbRun (командная кнопка) – после щелчка по которой будут производиться вычисления.

Форма будет выглядеть приблизительно так:

Далее приведем код с использованием оператора While:

if edInput.Text =» then Exit; //если число не введено

repeat, until – зарезервированные слова (повторять до тех пор пока не будет выполнено условие);

произвольная последовательность операторов Object Pascal;

выражение логического типа.

Операторы выполняются хотя бы один раз, после чего вычисляется выражение : если его значение False, операторы повторяются, в противном случае оператор завершает свою работу.

Пара repeat…until подобна операторным скобкам begin…end, поэтому перед until ставить точку с запятой не обязательно.

Для гибкого управления циклическими операторами for, while и repeat в состав Object Pascal включены две процедуры без параметров:

BREAK – реализует немедленный выход из цикла; действие процедуры заключается в передаче управления оператору, стоящему сразу за концом циклического оператора;

CONTINUE – обеспечивает досрочное завершение очередного прохождения цикла; эквивалент передачи управления в самый конец циклического оператора.

2. Окно InputBox

Вы уже знакомы с элементом управления, который позволяет пользователю создаваемого вами проекта вводить разнообразную информацию. Это текстовое поле. Естественно, этот элемент управления занимает на форме какое-то место и используется как правило в тех случаях, когда информация, которую должен ввести пользователь, не так уж мала. Иногда требуется ввести краткую информацию. Создавать для этого текстовое поле или отдельную форму не рационально. В таких случаях для ввода небольших фрагментов текста можно использовать функцию InputBox.

Функция InputBox вызывает окно InputBox.

Окно InputBox состоит из четырех элементов:

  1. строка заголовка (title);
  2. приглашение к вводу (prompt);
  3. поле ввода со значением по умолчанию (default);
  4. две кнопки (OK и Cansel)

Функция вызова окна InputBox имеет следующий синтаксис:

Р := InputBox (‘title’, ‘prompt’, ‘default’ )

где Р — возвращаемое значение функции (тип String);

Функция inputBox возвращает строку, введенную пользователем. При щелчке пользователем на кнопке Cancel возвращается пустая строка.

2.1 Приложение «Приветствие»

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

На форму поместим одну командную кнопку, свойство Caption которой зададим значением «Назовись»;

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

В общей части кода объявим две переменные, в которых будут возвращаться значения функций InputBox:

YourName , YourSurName : String

Составьте код командной кнопки самостоятельно.

В Object Pascal могут использоваться объекты, содержащие несколько однотипных элементов. Это массивы – формальное объединение нескольких однотипных объектов (чисел, символов, строк и т.п.), рассматриваемое как единое целое.

При описании массива необходимо указать общее количество входящих в массив элементов и тип этих элементов. Например:

При описании массива используются зарезервированные слова array и of (массив из…). За словом array в квадратных скобках указывается тип-диапазон, с помощью которого компилятор определяет общее количество элементов массива. Тип диапазон задается левой и правой границами изменения индекса массива так, что массив A состоит из10 элементов, массив B – и 51, а массив C из 8 элементов. За словом of указывается тип элементов, образующих массив.

Доступ к каждому элементу массива в программе осуществляется с помощью индекса – целого числа, точнее выражения порядкового типа, служащего своеобразным именем элемента в массиве (если левая граница типа-диапазона равна 1, индекс массива совпадает с его порядковым номером). При упоминании в программе любого элемента массива сразу за именем массива должен следовать индекс массива в квадратных скобках, например:

A : array [1..10] of Integer;

В правильно составленной программе индекс не должен выходить за пределы, определенные типом-диапазоном. Например, можно использовать элементы A[1], B[38], C[0], но нельзя A[0] или C[38]. Компилятор Object Pascal может контролировать использование индексов в программе как на этапе компиляции, так и на этапе выполнения программы.

3.1 Использование циклов при работе с массивами


Чтобы «пробежаться» по элементам массива удобно использовать цикл For. Вы знаете, что этот цикл увеличивает параметр цикла на единицу. Можно использовать параметр цикла в качестве индекса массива, установив при этом нижний и верхний индексы массива равными, соответственно, нижней и верхней границам цикла For. В следующем примере всем десяти элементам массива a присваиваются нулевые значения

3.2 Приложение, в котором создается массив случайных чисел, подсчитывается их среднее арифметическое, находится минимальное и максимальное из них

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

Несколько слов о функции Random(w). Эта функция возвращает псевдослучайное число, равномерно распределенное в диапазоне: 0…(w-1). Тип ее результата такой же, как у параметра.

На форму поместим командную кнопку bbRun, по щелчку по которой будут производиться все действия нашей программы, и три метки: lbSrAr – для выведения среднего арифметического,lbMin – для выведения минимального элемента массива и lbMax – для выведения максимального элемента массива. Форма может выглядеть приблизительно так:

Приведем код для командной кнопки:

N = 1000; //количество элементов массива

m_v = 1000 + 1; //диапазон значений случайных чисел

M: array[1..N] of Integer; //массив чисел

i: Integer; //индекс массива

min, max: Integer; //минимальное и максимальное значения

sum: Real; //сумма чисел

//наполняем массив случайными числами:

//задаем начальное значение переменных:

//вычисление суммы и поиска минимального и максимального

//вычисление среднего значения и выведение результата:

3.3 Приложение prMyFriends

Сделаем небольшой проект, в котором будет объявлен массив, состоящий из 5 элементов myFriends имен ваших друзей. После щелчка на первой командной кнопке, которая будет размещена на форме, пользователь введет пять имен своих друзей (они должны запрашиваться в коде с помощью функции InputBox в цикле For). После щелчка на второй командной кнопке, которая тоже будет размещена на форме, этот массив имен друзей должен распечататься на форме в столбик.

На форму поместим две командные кнопки. Первую назовем btln, значение свойства Caption зададим «Заполни массив», вторую назовем btOut, значение свойства Caption у нее зададим «Распечатай».

Наш проект будет состоять нз одной формы fmMyFriends, на которую поместим две описанные выше командные кнопки.

Приступим к составлению кода проекта. В общей части объявим массив myFriends из 5 элементов.

MyFriends: array [1..5] of String;

Здесь же можно объявить и переменную i — индекс массива.

В процедуре первой кнопки в цикле For. Next запросим с помощью функции InputBox пять имен друзей. Эти имена присвоим поочередно элементам массива myFriends. Составьте код самостоятельно.

С помощью кода второй кнопки эти имена должны появляться на форме. Код тоже составьте самостоятельно. Проверьте свой проект в работе.

3.4 Более подробное описание массивов. Вложенность массивов

Любой из структурированных типов (массивы, записи, множества, файлы) характеризуется множественностью образующих этот тип элементов. Каждый элемент, в свою очередь, может принадлежать структурированному типу, что позволяет говорить о возможной вложенности типов. В Object Pascal допускается произвольная глубина вложенности типов, однако суммарная длина любого из них во внутреннем представлении не должна превышать 2 гб.

Описание типа массива задается следующим образом:

array, of – зарезервированные слова (массив из);

[ ] – список из одного или нескольких индексных типов, разделенных запятыми; квадратные скобки – требование синтаксиса;

— любой тип Object Pascal.

Определить переменную как массив можно и непосредственно при описании этой переменной, без предварительного описания типа массива. Например:

Обычно в качестве индексного типа используется тип-диапазон, в котором задаются границы изменения индексов. Так как , идущий в описании массива за словом of, — любой тип Object Pascal, то он может быть, в частности, и другим массивом, например:

mat = array[0..5] of array[-2..2] of array [Char] of Byte;

Такую запись можно заменить более компактной:

mat = array[0..5, -2..2, char]of Byte;

Глубина вложенности структурированных типов вообще, а следовательно, и массивов – произвольная, поэтому количество элементов в списке индексных типов (размерность массива) не ограничено, однако суммарная длина внутреннего представления любого массива не может быть больше 2 гб. В памяти ПК элементы массива следуют друг за другом так, что при переходе от младших адресов к старшим наиболее быстро меняется самый правый индекс массива.

В Object Pascal можно одним оператором присваивания передать все элементы одного массива другому массиву того же типа. Например:

a, b : array[1..5] of Single;

После этого присваивания все пять элементов массива а получат те же значения, что и в массиве b.

создаст разные типы массивов, поэтому оператор:

вызовет сообщение об ошибке.

Над массивами не определены операции отношения. Нельзя, например, записать:

Сравнить два массива можно поэлементно с использованием цикла For, например,

3.5 Использование циклов при работе с двумерными массивами

Чтобы «пробежаться» по элементам двумерного массива тоже удобно использовать цикл For. В двумерном массиве два индекса: индекс, соответствующий номеру столбца, и индекс, соответствующий номеру строки массива. Для каждого индекса нужно использовать отдельный цикл со своим параметром. Циклы будут вложенные: один вложен в другой. При этом один цикл станет внешним, другой внутренним. Рассмотрим пример, в котором всем элементам массива iMyArray, состоящего из четырех строк и трех столбцов, мы будем присваивать значение 1. Пусть внешним у нас будет цикл, соответствующий строкам массива, а внутренним – цикл, соответствующий столбцам. Тогда можно записать:

В то время, как значение индекса строки фиксировано, значение индекса столбца массива меняется (пробегает от самого меньшего к самому большему), затем меняется значение индекса строки, и значение индекса столбца опять пробегает от самого меньшего к самому большему. Так продолжается, пока значение индекса строки не достигнет максимального. Такое присвоение значений элементам массива назовем присвоением «по строкам».

Можно сделать наоборот: внешним сделать цикл, соответствующий индексу столбца, а внутренним – цикл, соответствующий индексу строки. Запись будет следующая:

Тогда в то время, как значение индекса столбца фиксировано, значение индекса строки массива меняется (пробегает от меньшего к большему), затем меняется значение индекса столбца, и значение индекса строки опять пробегает от самого меньшего к самому большему. Так продолжается, пока значение индекса столбца не достигнет максимального. Можно назвать такое присвоение значений элементам массива «по столбцам».

  1. Задания

4.1 Используя цикл Repeat…Until, сделайте приложение, в котором определяется количество пассажиров, которые могут поместиться на борт самолета, если его грузоподъемность 8 т. (Вес каждого пассажира вводится пользователем).

4.2 Используя цикл While, сделайте приложение, в котором находится первая степень числа 3, превышающая заданное число A.

4.3 Сделайте приложение prHello, описанный в пункте 2.1

    1. Сделайте приложение prMyFriends, описанное в пункте 3.3 занятия
    2. Сделайте приложение, в котором создается двумерный массив случайных чисел из 4-х столбцов и 5 строк, подсчитывается их среднеарифметическое, определяется и выводится на форму максимальное и минимальное из них
Илон Маск рекомендует:  Зафиксированный на экране блок
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL