Мета: Навчитись будувати таблиці
Завдання 1.
Побудувати таблицю як на малюнку.
Створити відповідні обробники подій для редагування таблиці.
Для діагностування вибору активної клітинки вивевести номер стовпчика та рядка та можливість редагування.
Продемонструвати роботу програм..
Процедура на редагування вмісту клітинки таблиці.
Якщо клітинка порожня то число 0 інакше переведено у
число.
Наведено приклад, як обмежити кількість знаків після
коми.
procedure TForm1.StringGrid1SetEditText(Sender: TObject;
ACol,
ARow: Integer;
const Value: String);
var a,b,c,k:integer;
begin
k:=0; //кількість заповнених клітинок
if
StringGrid1.Cells[ACol,Arow]<>'' Then
begin
if StringGrid1.Cells[1,Arow]<>''
Then begin a:= StrToInt(StringGrid1.Cells[1,Arow]); k:=+k+1;end else a:=0;
if
StringGrid1.Cells[2,Arow]<>'' Then begin b:=
StrToInt(StringGrid1.Cells[2,Arow]);k:=+k+1;end else b:=0;
if
StringGrid1.Cells[3,Arow]<>'' Then begin c:=
StrToInt(StringGrid1.Cells[3,Arow]);k:=+k+1;end else c:=0;
StringGrid1.Cells[4,Arow]:=FormatFloat('0.00',(a+b+c)/k);
//floatToStr((a+b+c)/k);
//FormatFloat('0.00', a)
//FormatFloat('0.##', a)
//=Format('%2f',[1000000000/3]);
end;
end;
---------------------------
Процедура коли вибрано ячейка таблиці.
procedure TForm1.StringGrid1SelectCell(Sender: TObject;
ACol,
ARow: Integer;
var CanSelect: Boolean);
begin
Label1.Caption:=IntToStr(ACol);
Label2.Caption:=IntToStr(ARow);
if ACol=4 Then
begin
StringGrid1.Options:=StringGrid1.Options-[goEditing];
label3.Caption:='нет редактирования’;
end
Else
begin
StringGrid1.Options:=StringGrid1.Options+[goEditing];
//встановлення редагування
label3.Caption:='редагування
можливе’;
end;
end;
Немає коментарів:
Дописати коментар