Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

StringGrid


sergeyst ©   (2007-01-17 11:32:00) 

Здравствуйте уважаемые мастера.
Подскажите, пожалуйста, как мне удалить строку из грида
 sgViewDoc.Rows[sgViewDoc.Row].Delete(sgViewDoc.Row);
На это выдает сообщение, что не может вставить/удалить строку. Почему?


Германн   (2007-01-17 14:33:00) [1]


> clickmaker ©   (17.01.07 12:09) [7]
>
>
> > [2] sergeyst ©   (17.01.07 11:58)
>
> а, ну да
> придется сдвигать содержимое тогда, потом уменьшить RowCount
>

Это уже реализовано в TCustomGrid.DeleteRow


clickmaker   (2007-01-17 12:09:00) [2]


> [2] sergeyst ©   (17.01.07 11:58)

а, ну да
придется сдвигать содержимое тогда, потом уменьшить RowCount


easy   (2007-01-17 12:07:00) [3]

http://www.scalabium.com/faq/dct0057.htm


sergeyst   (2007-01-17 12:06:00) [4]

Единственное, придумал - это запомнить номер нужной строки, а потом заново заполнить грид уже без нее. Как-то коряво.


Elen   (2007-01-17 12:02:00) [5]


> sergeyst

Попробуй так : index - номер удаляемой строки

//********** FUNCTION **********
function DelRowInStringGrid(Grid:TStringgrid;index:integer):variant;
var
i: integer;
begin

Grid.Row:=0;
i:=0;
while( i<=Grid.RowCount - 1)and(  Grid.Row<Grid.RowCount-1) do
begin
if i>=index then begin
  Grid.Rows[i].Assign(Grid.Rows[i+1]);
end else
 Grid.Row:=Grid.Row+1;
 inc(i);
end;
 // StringGrid1.RowCount := StringGrid1.RowCount - 1;
end;
//********** END FUNCTION ******


Elen   (2007-01-17 11:59:00) [6]


> clickmaker ©   (17.01.07 11:40) [1]
>
> sgViewDoc.Rows.Delete(sgViewDoc.Row)

Разве?
а не выдаст Error : '[' expected but '.' found


sergeyst   (2007-01-17 11:58:00) [7]


> clickmaker ©   (17.01.07 11:40) [1]

пишет, что ожидался '['
и так тоже:
sgViewDoc.Rows[].Delete(sgViewDoc.Row)


clickmaker   (2007-01-17 11:40:00) [8]

sgViewDoc.Rows.Delete(sgViewDoc.Row)


Наверх

Титульная страница Поиск, карта сайта Написать письмо