Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Листинг 5.3. Процедура обработки события OnKeyPress



procedure TForm1.StringGrid1KeyPress(Sender:TObject;

var Key:Char);

Begin

CaseKey of

#8,'0'..'9':; // цифры и клавиша <Backspace>

#13: // клавиша <Enter>

if StringGrid1.Col < StringGrid1.ColCount — 1

then StringGrid1.Col:= StringGrid1.Col + 1;

else key:= Chr(0); // остальные символы запрещены

end;

end;

Если нужно ввести массив дробных чисел (a: array [1..5] of real), то процедура обработки события OnKeyPress несколько усложнится, т. к. помимо цифр допустимыми символами являются символ-разделитель (запятая или точка — зависит от настройки Windows) и минус. С целью обеспечения некоторой дружественности программы по отношению к пользователю можно применить трюк: подменить вводимый пользователем неверный разделитель верным. Определить, какой символ-разделитель допустим в текущей настройке Windows, можно, обратившись к глобальной переменной Decimalseparator.

В листинге 5.4 приведен текст модуля приложения ввода и обработки массива дробных чисел. Процедура обработки события OnKeyPress обеспечивает ввод в ячейку таблицы только допустимых при записи дробного числа символов.

Листинг 5.4. Ввод и обработка массива дробных чисел

unit getar_1;

Interface

Uses

Windows, Messages, SysUtils, Variants, Classes,

Graphics, Controls, Forms, Dialogs, Grids, StdCtrls;

Type

TForm1= class(TForm)

Label1: TLabel;

StringGrid1: TStringGrid;

Button1: TButton;

Label2: TLabel;

procedure Button1Click(Sender: TObject);

procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);

private { Private declarations }

public { Public declarations }

end;

Var

Form1: TForm1;





Дата публикования: 2015-01-14; Прочитано: 324 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2025 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.209 с)...