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

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

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 - позиция курсора (фокус);


Наверх

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