![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!