Главная страница
    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.002 c
15-1363768712
Polevi
2013-03-20 12:38
2013.08.18
не могу вспомнить название библиотеки


3-1292399636
tadalex
2010-12-15 10:53
2013.08.18
Латвийская кодировка


2-1355249469
vasa777
2012-12-11 22:11
2013.08.18
кампилятор


3-1292346820
megavoid
2010-12-14 20:13
2013.08.18
[D2010] Магия мыши в TSQLQuery + DateTimePicker


15-1363614788
О-Сознание
2013-03-18 17:53
2013.08.18
О создании софта





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