Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2007, 16:02   #1
РИЯ
 
Регистрация: 19.10.2007
Сообщений: 8
По умолчанию скрыть ячейки в таблице StringGrid

есть таблица с 3-мя столбцами, колличество строк создаются динамически, необходимо чтоб строки скрывались?
РИЯ вне форума Ответить с цитированием
Старый 19.10.2007, 16:07   #2
mihali4
*
Старожил
 
Регистрация: 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.
mihali4 вне форума Ответить с цитированием
Старый 22.10.2007, 07:48   #3
РИЯ
 
Регистрация: 19.10.2007
Сообщений: 8
По умолчанию просмотрите пожалуйста

Если количество строк фиксированно, то работает, а если переменное то нет! почему?
Вложения
Тип файла: txt primer.txt (2.0 Кб, 156 просмотров)
РИЯ вне форума Ответить с цитированием
Старый 22.10.2007, 08:01   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 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...
Stilet вне форума Ответить с цитированием
Старый 22.10.2007, 08:15   #5
РИЯ
 
Регистрация: 19.10.2007
Сообщений: 8
По умолчанию

Спасибо огромное! До меня дошло, что надо было сделать! просто тэг <tbody> надо было определить в другом месте!
РИЯ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Координаты ячейки в 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