Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.069 c
5-1144420112
Yuri Btr
2006-04-07 18:28
2006.12.03
Перекрытие методов класса-предка


2-1163743805
alex810
2006-11-17 09:10
2006.12.03
StringGrid событие DrawCell


2-1163700111
Ingwar
2006-11-16 21:01
2006.12.03
Как прервать цикл ожидания посылки (ComPort 3.1 от WinSoft a)


15-1163349293
dzmitry[li]
2006-11-12 19:34
2006.12.03
В чём может быть проблема? Самостоятельно выключается компьютер


15-1163601913
AlexanderMS
2006-11-15 17:45
2006.12.03
Сообщения Windows.