![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() помогите с удалением строки из DrawGrid.
сейчас использую вот такой вариант,но он удаляет фиксированную строку. Код:
procedure TForm1.Button1Click(Sender: TObject); var L : TStringList; begin L.Delete(DrawGrid1.Row - 1); end; есть отличный вариант для StringGrid Код:
procedure TForm1.Button1Click(Sender: TObject); var i,j: Integer; begin j:=StringGrid1.Row; // строка с выделением if (j = 1) and (StringGrid1.RowCount <= 2) then begin with StringGrid1 do for i:= 0 to ColCount - 1 do Cells[i, j]:= ''; exit; // не удаляем последнюю строку чтобы не потерять фиксированной end; StringGrid1.Rows[j].Clear; for i:=j to StringGrid1.RowCount-2 do StringGrid1.Rows[i].Assign(StringGrid1.Rows[i+1]); StringGrid1.RowCount:=StringGrid1.RowCount-1; end; вот как его переделать под DrawGrid? |
#2
|
|||
|
|||
![]() У DrawGrid по моему тоже самое. Если оперируешь текстом. А если в ячейках рисунки то вместо cell[i, j]:= '' пиши StringGrid1.Canvas.Rectangle(StringGrid1.CellRect[i, j]) как то так. Просто не испытал.
APPLICATION.TERMINATOR |
#3
|
|||
|
|||
![]() тоже да не совсем, тут завязка на TStringList.
вот что то на ваял Код:
procedure TmainF.FillGrid(Lst: TStringList); begin DrawGrid1.RowCount := L.Count+1; DrawGrid1.ColCount := 2; DrawGrid1.Refresh; end; procedure TForm1.Button1Click(Sender: TObject); var L: TStringList; begin if (DrawGrid1.RowCount <= 2) then // оставляем строку №1, чтобы не потерять Фиксированной(строка № 0) L.Clear ;// очищаем строку №1 L.Delete(DrawGrid1.Row - 1); FillGrid(L); end; вроде все правильно, но по почему то выдает ошибку --------------------------- Project1 --------------------------- List index out of bounds (0) --------------------------- ОК --------------------------- помогите пожалуйста с разрешением этой проблемы Последний раз редактировалось konsul_81, 10.05.2010 в 16:51. |