|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.10.2007, 16:02 | #1 |
Регистрация: 19.10.2007
Сообщений: 8
|
скрыть ячейки в таблице StringGrid
есть таблица с 3-мя столбцами, колличество строк создаются динамически, необходимо чтоб строки скрывались?
|
19.10.2007, 16:07 | #2 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Если нужно скрыть нижние N строк, зададим
StringGrid1.Row.Count:=StringGrid1. Row.Count-N; При этом скрытые строки никуда не денутся и их можно вновь показать, восстановив количество строк: StringGrid1.Row.Count:=StringGrid1. Row.Count+N. Последний раз редактировалось mihali4; 19.10.2007 в 16:09. |
22.10.2007, 07:48 | #3 |
Регистрация: 19.10.2007
Сообщений: 8
|
просмотрите пожалуйста
Если количество строк фиксированно, то работает, а если переменное то нет! почему?
|
22.10.2007, 08:01 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Рия, есть два неплохих варианта:
1 - Воспользоваться соответственно навороченными компонентами 2 - Однажды мне стукнула в голову идея просто напросто делать строки невидимыми поставив им высоту равную нулю. Вот примерно так: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids; type TForm1 = class(TForm) StringGrid1: TStringGrid; procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean); procedure StringGrid1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.StringGrid1SelectCell(Sender : TObject; ACol, ARow: Integer; var CanSelect: Boolean); begin if StringGrid1.RowHeights[arow]=0 then if arow<>StringGrid1.RowCount-1 then StringGrid1.Row:=arow+1; //CanSelect:=false; end; procedure TForm1.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var a,b:integer; begin // Если кликну по первой колонке // та строка по которой кликну сузится до нуля a:=StringGrid1.MouseCoord(x,y).x; b:=StringGrid1.MouseCoord(x,y).y; if a=0 then StringGrid1.RowHeights[b]:=0; end; end. Единственная заморочка это пропускать при переходе строчки с нулевой высотой. А так более или менее. Но это только как вариант.
I'm learning to live...
|
22.10.2007, 08:15 | #5 |
Регистрация: 19.10.2007
Сообщений: 8
|
Спасибо огромное! До меня дошло, что надо было сделать! просто тэг <tbody> надо было определить в другом месте!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Координаты ячейки в StringGrid??? | aslanbek | Общие вопросы Delphi | 13 | 01.08.2014 16:53 |
Определение выделенной ячейки в таблице в Delphi | Гео | Помощь студентам | 3 | 13.06.2008 14:51 |
Как узнать какие ячейки у StringGrid-а видимы? | Sergey2 | Компоненты Delphi | 2 | 04.06.2008 13:57 |
можно ли в stringgrid задавать размер конкретной ячейки | SeЯgey | Помощь студентам | 3 | 26.04.2008 18:47 |
Delphi: Сортировка строк в StringGrid, критерий - элемент ячейки | Andris | Помощь студентам | 9 | 09.03.2008 23:04 |