![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ячейки [D7, XP]
Silica © (2006-02-05 11:16:00)Нужно в StringGrid (таблице) подсчитать количество ячеек в нулевой строке, но без тех ячеек, которые имеют значение "-1". Следующий код подсчитывает количество, но иногда выводит неправильное значение. Всего ячеек 10 в строке. Иногда вместо 10, выводится 9, вместо 7 - 6. Иногда правильно выводит.
procedure TForm1.Button3Click(Sender: TObject);
var x, y : integer;
begin
y := 0;
for i := 0 to k do
begin
if stringgrid1.Cells[i,0] = '-1' then
y := y + 1;
x := stringgrid1.ColCount - y;
label1.Caption := inttostr(x);
end;
end;
Подскажите, пожалуйста, что не так.
Плохиш (2006-02-05 22:09:00) [1]
> k := 10. - это константа.
Может лучше вместо этого stringgrid1.ColCount - 1 использовать.
А в общем-то рекомендую к [5] прислушаться.
Apollon_604 (2006-02-05 17:35:00) [2]Попробуй отладчик использовать
Silica (2006-02-05 14:12:00) [3]
> Palladin
> Плохиш
все равно ошибается иногда на единицу. с первой загрузки показывает правильно, но при последующих может ошибаться. У меня в таблице числа генерируются(button 1), затем удаляются совпадения(button2), заменяясь на "-1" и выводится отчет(button3).
k := 10. - это константа.
Плохиш (2006-02-05 12:50:00) [4]Хотя, пардон, но переменная "k" как-то в условия задачи [0] не вписывается, если её значение не равно количеству столбцов в гриде.
Плохиш (2006-02-05 12:48:00) [5]Может стоит без лишних телеодвижений задачу реализовывать?
procedure TForm1.Button3Click(Sender: TObject);
var i,n : integer;
begin
n := 0;
for i := 0 to k do
if trim(stringgrid1.Cells[i,0]) <> '-1' then Inc(n);
label1.Caption := inttostr(n);
end;
Palladin (2006-02-05 12:01:00) [6]попробуй так
procedure TForm1.Button3Click(Sender: TObject);
var i,n : integer;
begin
n := 0;
for i := 0 to k do
begin
if trim(stringgrid1.Cells[i,0]) = '-1' then
Inc(n);
end;
label1.Caption := inttostr(stringgrid1.ColCount-n);
end;