Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatica / lab_delphi / Упражнение 2 по Delphi.doc
Скачиваний:
15
Добавлен:
09.04.2015
Размер:
438.78 Кб
Скачать

Дополнения к заданию

  1. Сделайте так, чтобы двойной щелчок на Edit1приводил к пересылке значения из поля вводаEdit3в поле ввода Edit1, очистке поляEdit2и передаче ему фокуса: Edit1.Text:=Edit3.Text;Edit2.Clear;Edit2.SetFocus;

  2. Сделайте так, чтобы, когда поле ввода Edit1 отображено, двойной щелчок наEdit2приводил к пересылке значения из поля вводаEdit3в поле ввода Edit2, очистке поляEdit1и передаче ему фокуса,иначе – к пересылке значения из поля вводаEdit3в поле ввода Edit2 и передаче ему фокуса: Edit2.Text :=Edit3.Text;ifEdit1.VisiblethenbeginEdit1.SetFocus;Edit1.Clear;endelseEdit2.SetFocus;

  3. Добавьте на форму командные кнопки с цифрами 0..9, символами “минус” , ‘E’, “точка” и сделайте для них общий обработчик щелчка, добавляющий соответствующие символы в позицию курсора последнего из полейEdit1иEdit2, имевшего фокус. Рекомендации:

    1. Используйте в разделе реализации дополнительную переменную для хранения номера последнего из полей Edit1 и Edit2, имевшего фокус, например, var e:1..2; которой при создании формы присваивается значение 1, если при этом фокус устанавливается на Edit1. В обработчиках щелчка этих полей Edit1 и Edit2 этой переменной присваивайте соответствующие значения.

    2. Добавьте на форму командную кнопку с заголовком ‘0’ и сделайте следующий обработчик щелчка на ней: procedureTForm1.Button2Click(Sender:TObject);vari:integer;beginife=1thenbeginEdit1.ClearSelection;i:=Edit1.SelStart;Edit1.Text:=Copy(Edit1.Text,1,Edit1.SelStart) +(SenderasTButton).Caption+Copy(Edit1.Text,Edit1.SelStart+1,length(Edit1.Text));Edit1.SelStart:=i+1;Edit1.SelLength:=0;endelsebeginEdit2.ClearSelection;i:=Edit2.SelStart;Edit2.Text:=Copy(Edit2.Text,1,Edit2.SelStart) +(SenderasTButton).Caption+Copy(Edit2.Text,Edit2.SelStart+1,length(Edit2.Text));Edit2.SelStart:=i+1;Edit2.SelLength:=0;end;end; гдеEdit1.ClearSelection– удаление выделенного текста (SenderasTButton) – предложение рассматривать объект, пославший сообщение, как командную кнопку,Edit1.SelLength– длина выделенного текста (равна 0, если нет выделения текста)Edit1.SelStart– позиция курсора в строке, еслиEdit1.SelLength= 0, иначе – начала выделенного текста.

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

    4. Дайте удобное размещение кнопок на форме.

  4. Добавьте на форму две селекторные кнопки с надписями “Радианы” и ”Градусы” и свойству Checkedпервой из них дайте значениеTrue(вторая автоматически будет иметь значениеFalse). Измените в обработчике кнопкиButton1 алгоритм вычисления синуса и косинуса так, чтобы учитывались единицы измерения аргументов (радианы\градусы) в соответствии с установкой селекторных кнопок.4: if RadioButton1.Checked then r3:=sin(r2) else r3:=sin(r2/180*Pi); 5: if RadioButton1.Checked then r3:=cos(r2) else r3:=cos(r2/180*Pi);

В результате всех добавлений форма примет примерно такой вид

Соседние файлы в папке lab_delphi