Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.08.18;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.006 c
15-1363079964
картман
2013-03-12 13:19
2013.08.18
как пишется


2-1353997983
Mikishanya
2012-11-27 10:33
2013.08.18
Stringgrid удаление пустых строк


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


15-1363721170
О-Сознание
2013-03-19 23:26
2013.08.18
Подскажите название сериала


15-1363589655
Ghost del vonte
2013-03-18 10:54
2013.08.18
Что за день сегодня такой?