Текущий архив: 2006.12.03;
Скачать: CL | DM;
Вниз
Проверка заполненности ячеек компонента TStringGrid Найти похожие ветки
← →
kat_nik © (2006-11-16 19:40) [0]Здравствуйте! Есть TStringGrid. В него вносятся данные. Эти данные нужно записать в двумерный динамический массив, размеры которого зависят от количества заполненных ячеек TStringGrid. Как определить количество строк, в которых есть записи, чтобы остальные (пустые) не учитывать? И каким образом вообще проверяется заполненность ячейки?
← →
API © (2006-11-16 19:43) [1]Как насчет проверить значение в ячейке на неравенство пустой строке?
Ячейки входят в строки или в столбцы. Проверяй в цикле, ага?
← →
kat_nik © (2006-11-16 19:57) [2]Ага? Просто думалось, что есть путь короче. Все равно СПАСИБО!
← →
KilkennyCat © (2006-11-16 20:09) [3]> есть путь короче
есть. отслеживать внесение данных и сразу заполнять массив. Если, конечно, не противоречит логике работы.
← →
kat_nik © (2006-11-16 20:30) [4]И как именно это сделать? Пожалуйста, опишите, если не трудно. Мне не хватает знания "слов" изучаемого "ин.яза"
← →
Kolan © (2006-11-16 20:32) [5]> есть. отслеживать внесение данных и сразу заполнять массив.
> Если, конечно, не противоречит логике работы.
Да ну - геморой...особо не выиграешь, а ошибки могут быть..
А если стерли? Сразу удалять из массива.
← →
KilkennyCat © (2006-11-16 21:23) [6]> [5] Kolan © (16.11.06 20:32)
> А если стерли? Сразу удалять из массива.
а не пофиг ли? если у меня на событии изменения состяния ячейки висит что-то подобное array[col, row] := grid.cells[col, row];, то что меня еще должно волновать? Пусть стирают, заменяют, что угодно делают - если в конце идет заполнение массива, то результат будет идентичным. Разумеется, возможно, на основании массива потом делается откат изменений. В этом случае, конечно, не подходит. Ибо он всегда будет идентичным гриду. Поэтому и добавил: если не противоречит логике работы.
← →
KilkennyCat © (2006-11-16 21:28) [7]Но вообще, каюсь, я усложнил задачу. Невнимательно прочел тему. Судя по всему, пустая ячейка между заполненными вовсе не означает пустой элемент массива.
← →
RASkov (2006-11-16 22:45) [8]Если это разовая процедура то можно и так:
SetLength(Arr, Grid.RowCount, Grid.ColCount);
ArrCount:=0;
Затем пробежаться по строкам и если хоть одна ячейка не "" то добавить в массив и INC(ArrCount);
По окончанию заново установить размер массива с учетом ArrCount. Т.е. меняется только одно измерение.
Проверить можно так:for R:= 0 to Grid.RowCount-1 do
for C:= 0 to Grid.ColCount-1 do
if Trim(Grid.Cell[C,R])<>"" then begin INC(ArrCount);....
← →
kat_nik © (2006-11-17 17:26) [9]Большое спасибо всем откликнувшимся!!!
(Предложение от RASkov"a в моем случае было самым подходящим)
Страницы: 1 вся ветка
Текущий архив: 2006.12.03;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.038 c