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

Вниз

Stringgrid удаление пустых строк   Найти похожие ветки 

 
Mikishanya ©   (2012-11-27 10:33) [0]

Всем доброго времени суток! Подскажите пожалуйста как удалить все пустые строки в stringgrid?
Предположим 1 и 3 строки с текстом а 2 и 4 пустые.

Пробовал и так

procedure TForm1.delrow(grid: TStringgrid; row: integer);
begin
mgrid(grid).DeleteRow(row);
end;
procedure TForm1.Button2Click(Sender: TObject);
var r,c,i,j: integer;
begin
r:=stringgrid1.RowCount;
c:=stringgrid1.ColCount;
for i:=1 to r-1 do

begin
if trim(stringgrid1.Rows[i].Text)="" then
delrow(stringgrid1,i);

end;
end;


и эдак
CODE>
procedure TForm1.delrow(grid: TStringgrid; row: integer);
begin
mgrid(grid).DeleteRow(row);
end;
procedure TForm1.Button2Click(Sender: TObject);
var r,c,i,j: integer;
begin
r:=stringgrid1.RowCount;
c:=stringgrid1.ColCount;
for i:=1 to r-1 do

begin
if stringgrid1.cells[j,i] then
delrow(stringgrid1,i);

end;
end;


удаляет либо все строки одну оставляет пустую, либо также удаляет все строки но оставляет 0 и 1 строки.

З.Ы.Всех прошу отвечать по делу. Не посылать меня "аб стену" и в том же духе. :)

Заранее благодарен за помощь!


 
Mikishanya ©   (2012-11-27 10:34) [1]

procedure TForm1.Button2Click(Sender: TObject);
var r,c,i,j: integer;
begin
r:=stringgrid1.RowCount;
c:=stringgrid1.ColCount;
for i:=1 to r-1 do

begin
if stringgrid1.cells[j,i]="" then
delrow(stringgrid1,i);


Извиняюсь, второй способ криво передал :))


 
Jeer ©   (2012-11-27 11:05) [2]

Наверное, учесть, что с каждый delrow изменяется .RowCount


 
Mikishanya ©   (2012-11-27 11:07) [3]


> Наверное, учесть, что с каждый delrow изменяется .RowCount

я об этом тоже подумал, но не могу это обойти.

если предположим все пустые строки с помощью MoveRow переместить вниз, то как удалить их подрят все?


 
Jeer ©   (2012-11-27 11:14) [4]

По очереди.


 
MBo ©   (2012-11-27 11:16) [5]

for i := Stringgrid1.RowCount - 1 downto Stringgrid1.FixedRows do...


 
Jeer ©   (2012-11-27 11:20) [6]

1.Нашли первую пустую строку из сгруппированных в конце грида.
2.Запомнили индекс idx.
3. Удалили
while idx <= *.RowCount do delrow(grid, idx);


 
Jeer ©   (2012-11-27 11:25) [7]

Но лучше не делать многих телодвижений, а обойтись одним "просмотром"

idx := 1; // учесть fixed row, если надо
while idx <= grid.RowCount do
 if *.Text = "" then delrow(grid, idx)
 else Inc(idx);


 
Mikishanya ©   (2012-11-27 11:35) [8]


> Но лучше не делать многих телодвижений, а обойтись одним
> "просмотром"idx := 1; // учесть fixed row, если надоwhile
> idx <= grid.RowCount do  if *.Text = "" then delrow(grid,
>  idx)  else Inc(idx);


Пошла родимая! Спасибо огромное!

только не idx <= grid.RowCount а просто idx < grid.RowCount в первом случае удаляло на 1 строку больше.

Всем огромное спасибо за помощь! Можно тему закрывать...


 
Иван   (2012-12-12 18:48) [9]

Удалено модератором


 
Иван   (2012-12-12 18:50) [10]

Удалено модератором


 
O'ShinW ©   (2012-12-13 11:02) [11]

Удалено модератором



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2013.08.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.003 c
15-1363546955
О-Сознание
2013-03-17 23:02
2013.08.18
Пароли


15-1363677995
JzckFromTheShadow
2013-03-19 11:26
2013.08.18
Оценить приблизительное количество файлов папке и ее подпапках


15-1363026996
Дмитрий С
2013-03-11 22:36
2013.08.18
Откуда гибрид берет энергию?


15-1363171562
Jeer
2013-03-13 14:46
2013.08.18
Почти парад планет в эти дни -


15-1363547215
Дмитрий С
2013-03-17 23:06
2013.08.18
У кого английский Photoshop CS6 (64)





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