Форум: "Начинающим";
Текущий архив: 2010.12.19;
Скачать: [xml.tar.bz2];
ВнизВидимость колонок в StringGrid Найти похожие ветки
← →
Крапивин Олег (2010-06-07 10:43) [0]Здравствуйте уважаемые Мастера.
Такой вопрос: имеется таблица StrringGrid с десятью полями. Смотреть все неудобно и хотелось бы иметь возможность включать-выключать отдельные колонки. В DBGrid есть свойство DBrid.Columns[N].Visible, а в стринггриде? По идее должно быть, в иерархии класса есть компонент Grids.TCustomDrawGrids, а как до него добраться.
Подскажите пожалуйста где копать?
← →
Anatoly Podgoretsky © (2010-06-07 12:12) [1]> Крапивин Олег (07.06.2010 10:43:00) [0]
До него не надо добираться, все что нужно доступно через наследование, это
часть триединого бога ООП
← →
Крапивин Олег (2010-06-07 13:06) [2]Простите Анатолий, не совсем понятно. В ДБГриде Visible лежит практически на поверхности, а где его искать в сетке строк?
← →
Leonid Troyanovsky © (2010-06-07 15:48) [3]
> Крапивин Олег (07.06.10 10:43)
> Смотреть все неудобно и хотелось бы иметь возможность включать-
> выключать отдельные колонки. В DBGrid есть свойство DBrid.
> Columns[N].Visible,
Возьми TClientDataSet в качестве хранилища
(Using a client dataset with file-based data)
и наслаждайся data-aware контролами.
Сегодня нужно скрыть колонку, завтра - напечатать отчет.
--
Regards, LVT.
← →
Плохиш © (2010-06-07 19:49) [4]
> Крапивин Олег (07.06.10 10:43)
Наверное в вашей справке об этом не написано, но у колонок сетки строк есть свойство "ширина".
← →
Leonid Troyanovsky © (2010-06-07 22:17) [5]
> Плохиш © (07.06.10 19:49) [4
Weite?
--
Regards, LVT.
← →
Плохиш © (2010-06-08 20:29) [6]
> Leonid Troyanovsky © (07.06.10 22:17) [5]
>
>
> > Плохиш © (07.06.10 19:49) [4
>
> Weite?
Нет, Breite.
← →
Leonid Troyanovsky © (2010-06-08 20:34) [7]
> Плохиш © (08.06.10 20:29) [6]
> Нет, Breite.
Danke!
Глядишь, так немецкий язык и освоим :)
--
Regards, LVT.
← →
MoDErahN (2010-08-28 00:51) [8]Просто выставляем ширину колонки в -1
TStringGrid.ColWidths[номер] := -1;
← →
LudmilKo (2010-09-28 06:43) [9]Если поставить ширину колонки в -1, то при переходе по колонкам курсор все равно переходит на нее.
← →
Плохиш © (2010-09-28 10:32) [10]
> LudmilKo (28.09.10 06:43) [9]
Тут уже надо уборщицу отправить заниматься прямыми обязанностями и нанять программиста.
← →
бумбум (2010-09-28 11:17) [11]Знаю два варианта:
> Если поставить ширину колонки в -1, то при переходе по колонкам
> курсор все равно переходит на нее.
сделай чтоб перескакивала
Или пиши процедуру которая будет сдвигать всё содержимое колонок к указанной как удаляемой и StringGrid1.ColCount:=StringGrid1.ColCount-1;
> Anatoly Podgoretsky © (07.06.10 12:12) [1]
> До него не надо
> добираться, все что нужно доступно через наследование, это
> часть триединого бога ООП
Интересно как?
TStringGrid(StringGrid1).Columns[3].Visible:= false;
Типа как то так но подругому?
← →
12 © (2010-09-28 11:49) [12]вариант с хаком и опасностью увеличения colCount (потом юзается добавленный столбец)
идея будет понятно, думаю
пример работает
если нужно сдать преподу и забыть - можно юзать
type
TForm1 = class(TForm)
btn1: TButton;
strngrd1: TStringGrid;
procedure btn1Click(Sender: TObject);
private { Private declarations }
public { Public declarations }
end;
TCG = class (TCustomGrid);
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure HideColumn(var SG:TStringGrid; Col:integer);
var
n: Integer;
begin
n := SG.ColCount;
SG.Cells[Col,0] := SG.Cells[Col,0] + "Кукарача";
TCG(SG).MoveColumn(Col, n -1);
SG.ColCount := SG.ColCount-1;
end;
procedure ShowColumn(var SG:TStringGrid; Col:integer);
var
s:string;
n,k:Integer;
begin
SG.ColCount := SG.ColCount + 1;
n:= SG.ColCount -1;
s := SG.Cells[n, 0];
k:= Pos("Кукарача", s);
if k <> 0 then
begin
SG.Cells[n, 0] := StringReplace(SG.Cells[n, 0],"Кукарача","",[rfReplaceAll]);
TCG(SG).MoveColumn(n, col);
end else
SG.ColCount := SG.ColCount - 1;
end;
procedure TForm1.btn1Click(Sender: TObject);
begin
HideColumn(strngrd1, 2);
ShowMessage( "" );
ShowColumn(strngrd1, 2);
end;
← →
Anatoly Podgoretsky © (2010-09-28 11:59) [13]> бумбум (28.09.2010 11:17:11) [11]
Свойство или прямо видно, через наследование или доступно через приведение к
предку.
← →
Anatoly Podgoretsky © (2010-09-28 12:05) [14]Правильно решение - удаление и восстановление колонок.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.12.19;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.003 c