Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Вниз

Проверка заполненности ячеек компонента 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.048 c
15-1163389685
Slider007
2006-11-13 06:48
2006.12.03
С днем рождения ! 13 ноября


1-1161248391
MsGuns
2006-10-19 12:59
2006.12.03
Найти символ в строке относительно мыши


15-1163685032
Андрей Сенченко
2006-11-16 16:50
2006.12.03
Работа с XML на Delphi. Начинающему :)


2-1163370410
c0rben
2006-11-13 01:26
2006.12.03
Сортировка по алфавиту


15-1163474121
Slider007
2006-11-14 06:15
2006.12.03
С днем рождения ! 14 ноября





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский