![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
KOLmdvXLGrid [D6, WinXP]
Max727 © (2007-09-03 16:03:00)вопрос простой
хочу удалить выделенную строку, но не выходит
procedure TfmMain.xl1KeyDown(Sender: PControl; var Key: Integer;
Shift: Cardinal);
var itmp:integer;
begin
if Key = 46 then
begin
itmp:=xl1.Selected.Top;
xl1.DeleteRow(itmp);
end;
end;
что неправильно?
Max727 (2007-09-03 16:51:00) [1]Решение нашел:
procedure TfmMain.xl1FocusChange(Sender: PControl; ACol, ARow: Integer);
begin
xl1.SetSelectedAll(False);
xl1.SelectedRows[xl1.Position.Y] := True;
xl1.CurIndex:=xl1.Position.Y;
end;
...
procedure TfmMain.xl1KeyDown(Sender: PControl; var Key: Integer;
Shift: Cardinal);
var itmp:integer;
begin
if Key = 46 then
begin
itmp:=xl1.CurIndex;
xl1.DeleteRow(itmp);
end;
end;
так - работает
извините за беспокойство
mdv спасибо, что указал направление
mdw (2007-09-03 16:30:00) [2]Специально проверил, просто код скопировал. Работает. Проверьте чему равно xl1.Selected.Top? Может быть -1, например, если выделять строки за заголовок.
Читаем описание:
property Selected - выделенный прямоугольник (не цветом, а рамкой);
Возможно стоит использовать
property SelectedRows[Index: Integer] - список выделенных строк;
Или
property Position - позиция курсора (фокус);