Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.12.19;
Скачать: CL | DM;

Вниз

Видимость колонок в 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.008 c
4-1242719572
Deamon_777
2009-05-19 11:52
2010.12.19
Как получить всю инфорнацию о файле.


15-1283967501
Ega23
2010-09-08 21:38
2010.12.19
Читал Лурк про Веб 1.0


3-1249649283
aleks-ran
2009-08-07 16:48
2010.12.19
Параметры и mysql-connector-odbc-5.1.5


15-1284323370
Юрий
2010-09-13 00:29
2010.12.19
С днем рождения ! 13 сентября 2010 понедельник


2-1285337626
GrieVeR-113
2010-09-24 18:13
2010.12.19
AlphaBlend для отдельного компонента формы.