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

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

Выделение нескольких строк в TStringGrid [D6]


Lakshmy ©   (2005-03-02 19:58:00) 

Подскажите, пожалуйста, как сделать так, чтобы можно было выделять несколько строк в TStringGrid. И чтобы было все как у людей - с Sift - все между указанными, с Ctrl - выборочно. А тут возникает еще один вопрос: как потом с этой выборкой работать. Есть у меня идеи, но они совершенно кривые и тупые. Хотелось бы что-нибудь поизящнее...


Lakshmy   (2005-03-04 20:53:00) [1]

Я уже умудрилась обойти это место. Я по другому сделала


begin...end   (2005-03-04 20:47:00) [2]

> Lakshmy ©   (04.03.05 19:52) [8]
> Lakshmy ©   (04.03.05 19:57) [9]

У меня всё нормально.


Lakshmy   (2005-03-04 19:57:00) [3]

Вот у меня так:

SGr.Selection:=TGridRect(Rect(CurCol,CurRow, SGr.ColCount-1, SGr.Row))

где [CurCol,CurRow] - координаты ячейки, с которой надо начать выделение. Визуально у меня выделяется, а вот когда к SGr.Selection обращаюсь, то получается то, что я выше написала


Lakshmy   (2005-03-04 19:52:00) [4]

У меня почему-то получается что

StringGrid.Selection.Top=StringGrid.Selection.Bottom

Почему?
Например у меня выделяется с 1 по 3 строку, должно ведь быть

StringGrid.Selection.Top=1
StringGrid.Selection.Bottom=3

Ведь так?


Lakshmy   (2005-03-02 21:20:00) [5]

все! догнала! спасибо!


begin...end   (2005-03-02 21:18:00) [6]

> Lakshmy ©   (02.03.05 21:15) [5]

Верхняя строка выделенной группы - StringGrid.Selection.Top. Нижняя - StringGrid.Selection.Bottom.


Lakshmy   (2005-03-02 21:15:00) [7]

ааа! я то подумала... Ну хорошо, это понятно. А как потом обрабатывать выделенные строки?


begin...end   (2005-03-02 21:10:00) [8]

> Lakshmy ©   (02.03.05 21:00) [2]

О каких перерисовках Вы говорите?

Вот так, например, можно выделить 2 первых строки в StringGrid'е:

StringGrid.Selection := TGridRect(Rect(1, 1, StringGrid.ColCount - 1, 2))


Lakshmy   (2005-03-02 21:00:00) [9]

...а дальше? я перерисовки не очень знаю... может ссылочку какую?


Lakshmy   (2005-03-02 21:00:00) [10]

...а дальше? я перерисовки не очень знаю... может ссылочку какую?


begin...end   (2005-03-02 20:12:00) [11]

> Lakshmy ©   (02.03.05 19:58)

Используйте свойство TStringGrid.Selection. В нём хранится прямоугольник выделения.


Наверх

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