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

procedureTForm1.StringGridlKeyPress(Sender: TObject;

varKey: Char);

Begin

caseKey of

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

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

ifStringGridl.Col < StringGridl.ColCount — 1

thenStringGridl.Col := StringGridl.Col + 1;

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

End;

End;

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

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

Листинг 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;

procedureButton1ClicktSender: TObject);

procedureStringGridlKeyPress(Sender: TObject; varKey: Char);

private

{ Private declarations }

public

{ Public declarations }

end;

Var

Form1: TForm1;








Дата добавления: 2014-12-01; просмотров: 771;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.