Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпаргалка по Основам алгоритмизации и программи...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
141.22 Кб
Скачать

33. Назначение класса tCanvas. Приведите примеры методов этого класса.

Многие классы Delphi имеют методы, которые позволяют синхронизировать доступ к переменным классов при обращении к ним из различных потоков. Класс TCanvas - имеет методы Lock и Unlock. После вызова метода Lock рисование на полотне (canvas) возможно только из потока, откуда осуществлен вызов этой команды, а остальные потоки находятся в состоянии ожидания.

procedure TSortThread.DoVisualSwap;

begin

with FBox do

try

Canvas.Lock;

Canvas.Pen.Color := clBtnFace;

PaintLine(Canvas, FI, FA);

PaintLine(Canvas, FJ, FB);

Canvas.Pen.Color := clRed;

PaintLine(Canvas, FI, FB);

PaintLine(Canvas, FJ, FA);

finally

Canvas.Unlock;

end;

end; Код можно вызывать без использования метода Synchronize, причем он будет работать быстрее.

34. Варианты ввода информации в Delphi. Назначение и формат функций ShowMessage и MessageDlg.

Текстовое поле ввода (TEdit) - простой и в то же время удобный элемент для ввода данных. В поле мы можем ввести и число и текст - никаких ограничений нет. Итак, наша первая задача - узнать, что введено в поле. Для этого мы должны обратиться к свойствам этого объекта. За текст, находящийся в поле, отвечает свойство Text. Именно им мы и воспользуемся. Попробуем считать число, которое будет введено... Расположим на форме само поле (TEdit) и кнопку (TButton). Создадим обработчик нажатия кнопки и сделаем следующее: объявим переменную целочисленного типа, а затем попробуем поместить в неё значение, которое введено в поле.

procedure TForm1.Button1Click(Sender: TObject);

var A: Integer;

begin

A:=StrToInt(Edit1.Text);

end;

Функция MessageDlg - она используется для вывода на экран messagebox с неким сообщением и несколькими кнопками (Yes, No, OK и т. д.). Параметры у этой функции следующие. Первый задает строку, которая будет показываться в нашем сообщении (Как и все строи в Delphi, заключаем ее в одинарные кавычки). Второй параметр определяет иконку на нашем messagebox и сообщение в его заголовке. Возможные значения для этого параметра - mtConfirmation (Подтверждение), mtInformation (Сообщение), mtWarning (Предупреждение), mtError (Ошибка). Обратите внимание, что при записи любого из перечисленных значений messagebox получит и соответствующий заголовок. Для этого параметра есть еще одно значение - mtCustom. Если использовать его, то никакой иконки в нашем messagebox не будет, а заголовок будет совпадать с именем exe-файла. Третий параметр определяет кнопки, которые будут присутствовать на combobox. Вот некоторые из возможных значений: mbYes (кнопка Yes), mbNo (кнопка No), mbCancel (кнопка Cancel), mbOK (кнопка OK). Если кнопок несколько, то они объединяются посредством квадратных скобок (например, если мы хотим, чтобы присутствовало две кнопки Yes и No, то пишем [mbYes, mbNo]). Последний, четвертый параметр - это идентификатор контекстной справки. В качестве результата функции MessageDlg возвращает значение, информирующее о том, что за кнопку пользователь нажал в messagebox. Вот несколько возможных значений: mrYes, mrCancel, mrOK. Пример использования функции MessageDlg:

if MessageDlg('Выходим из программы?',

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

then close;

Функция ShowMessage. У неё только один параметр - текст сообщения. Пример: ShowMessage('Сообщение'); Эта функция используется для вывода простых сообщений, которые не требуют ответа от пользователя (типа Yes, No и т. д.).