Главная страница
    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.46 MB
Время: 0.038 c
15-1163566298
vamp_avp
2006-11-15 07:51
2006.12.03
Траблтикет


15-1163586466
YOjik
2006-11-15 13:27
2006.12.03
Загадка


15-1163524439
ArtemESC
2006-11-14 20:13
2006.12.03
Как сделать поворотник...


6-1152518143
Antuan
2006-07-10 11:55
2006.12.03
проблемы с отправкой письма


15-1163274646
cerber
2006-11-11 22:50
2006.12.03
Как заставить программу работать с HTML help





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский