«аочное дистанционное образование с получением государственного диплома через Internet










ѕолучить информацию о поступлении
 
√лавна€ Ќовости  арта сайта ‘отоальбом √остева€ книга  онтакты

{LTS}

 

”пражнение по вводу и обработки элементов массива с использованием StringGrid

”пражнение. —оздайте приложение с компонентом StringGrid, обеспечивающее пользователю возможность ввода значений элементов двумерного массива в €чейки и выполн€ющее вычисление суммы элементов массива.

—оздайте форму, дл€ свойства Caption задайте значение Ђ¬вод и суммирование элементов массиваї. ¬ыберите в палитре компонентов страницы Additional компонент StringGrid и разместите его по центру формы. ¬ окне »нспектора объектов выберите компонент StringGrid1 и присвойте его свойству Align (¬ыравнивание) значение alNone (He измен€ть). ѕри этом компонент StringGrid1 остаетс€ там, куда он был помещен во врем€ проектировани€, и размеры его не измен€ютс€. «адайте дл€ свойств ColCount и RowCount значени€ 5. «адайте дл€ свойств FixedCols и FixedRows (количество фиксированных, не прокручиваемых столбцов и строк, используемых дл€ размещени€ надписей номеров столбцов и строк) значение 1. Ќа странице свойств »нспектора объектов разверните список свойства StringGrid1.Options и задайте дл€ его подсвойств: goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goDrawFocusSelected и goEditing значение True.

¬ левом нижнем углу формы разместите кнопку Button1 и присвойте ее свойству Caption значение Ђ¬ычислитьї. ¬ правом нижнем углу формы разместите объект Edit1 дл€ отображени€ суммы элементов массива. Ќад объектом StringGrid1 разместите компонент Label1 и задайте дл€ его свойства Caption значение Ђ¬ведите элементы массиваї. —лева от объекта Edit1 разместите компонент Label2 и задайте дл€ его свойства Caption значение Ђ—умма элементовї. ”далите текст Edit1 из окна Edit1. ¬ыровн€йте компоненты.

—охраните файл проекта и программного модул€.

„тобы обеспечить пользователю возможность ввода значений элементов двумерного массива в €чейки SringGrid1, создайте процедуру обработчика событи€ OnEnter дл€ объекта StringGrid1. ƒл€ этого выберите в окне »нспектора объектов объект StringGrid1 и на странице —обыти€ произведите двойной щелчок на пустом поле списка в событии OnEnter, наступающем в момент получени€ элементом фокуса. ѕосле этого в окне –едактора кода будет сгенерирована заготовка процедуры обработчика событи€ procedure TForml.FormCreate(Sender: TObject);

“ак как эта процедура сводитс€ к выводу в окне приложени€ таблицы StringGrid1 подписи номеров строк и столбцов, то текст этой процедуры можно записать следующим образом:

procedure TForm1.FormCreateCSender: TObject);
var
I,J: Integer: {номера столбцов и строк}
begin
with StringGrid1 do {вывести номера строк в 0 столбце и столбцов в 0 строке}
begin
I:=0: {столбец 0}
for J:= I to RowCount - 1 do
Ce11s[I,J] := IntToStr(J);
J:=0; {строка 0}
for I:= 1 to ColCount - 1 do Cells[I,J] := IntToStr(I);
end;
end;

ƒл€ предупреждени€ ошибки ввода в окно €чейки StringGrid1 нечислового значени€ введите обработку нажати€ клавиши, чтобы запретить ввод любых

символов, кроме цифр от 0 до 9 и знаков Ђ-ї и Ђ+ї. ƒл€ создани€ процедуры обработчика событи€ нажати€ клавиши выберите в окне »нспектора объектов компонент StringGrid1 и на странице Events (—обыти€) дважды щелкните левой кнопкой мыши на пустом поле списка в событии OnKeyPress. ѕосле этого окно –едактора кода немедленно получит фокус и в разделе interface по€витс€ запись процедуры обработчика событи€: procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);.

¬ставьте в текст заготовки этой процедуры оператор

if not (Key in ['0'..'9','-','+']) then
Key:=#0;

—охраните, откомпилируйте и запустите приложение на выполнение.  ак вы увидите, приложение обеспечивает ввод числовых значений элементов массива в €чейки StringGrid1, но не вычисл€ет их сумму при щелчке мышью на кнопке Button1, так как процедура обработки этого действи€ еще не создана.

ƒл€ подсчета элементов введенного массива следует записать в виде процедуры обработчик событи€ щелчка мышью на кнопке Button1. ƒл€ генерации кода процедуры обработчика событи€ выберите в окне »нспектора объектов объект Button1 и на странице —обыти€ произведите двойной щелчок на пустом поле списка в событии OnClick, наступающем в момент получени€ элементом фокуса. ѕосле этого в окне –едактора кода будет сгенерирована заготовка процедуры обработчика событи€ procedure TForm1.Button1Click(Sender: TObject);, в которую следует добавить следующие операторы:

procedure TForm1.Button1ClickCSender: TObject):
{подсчет суммы элементов}
var
I,J,Sum : integer;
begin
with StringGrid1 do
begin
Sum:=0; {обнулить сумму перед суммированиемэлементов}
Edit1.Text: = ";
for J:=l to RowCount - 1 do
for I:=1 to ColCount - 1 do
if Cells[J,I]<>" then
{если €чейка заполнена, то суммировать ее значение}
Sum:=Sum+StrToInt(CelIs[J,I]);
Edit1.Text:=IntToStr(Sum); {вывод результата суммировани€}
end;
end;

—охраните, откомпилируйте и запустите на выполнение созданное приложение. “еперь оно обеспечивает не только ввод числовых значений элементов массива в €чейки StringGrid1, но и вычисл€ет их сумму при щелчке на кнопке Button1.


”знать как сэкономить в кризис моно на сайте ekonom-it.ru

Ѕиблиотечный стандартный модуль Graph ”пражнение є1 дл€ обработки строк ”пражнение по созданию и обработке линейного массива ”пражнение на линейную сортировку массива ”пражнение дл€ представлени€ двумерных массивов с помощью компонента StringGrid ”пражнени€ по обработке файлов (упр 1.) ”пражнени€ по обработке файлов (упр 2.) ”пражнени€ по обработке файлов (упр 3.) ”пражнени€ по обработке файлов (упр 4.) ”пражнени€ по обработке файлов (упр 5.) 


 
     
   
 


ѕриглашаем прин€ть участие в круглом столе!
подробнее   >>>
 

»нститут ћенеджмента, Ёкономики и »нноваций начинает набор на курсы повышени€ квалификации!
подробнее   >>>
 

”важемые студенты јЌќ ¬ѕќ »ћЁи»!
подробнее   >>>
 

Ќачинаетс€ набор на курсы повышени€ квалификации!
подробнее   >>>
 

ѕриглашаем прин€ть участие в конференци€х!
подробнее   >>>
 


все новости...

 


–ассылки Subscribe.Ru
—овременное образование
ѕодписатьс€ письмом