Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1284025204
И. Павел
2010-09-09 13:40
2010.12.19
Как узнать логин, под которым клиент вошел в MS SQL?


15-1283804974
Юрий
2010-09-07 00:29
2010.12.19
С днем рождения ! 7 сентября 2010 вторник


2-1285489618
Igorishe
2010-09-26 12:26
2010.12.19
сеансы


11-1225127383
arthur
2008-10-27 20:09
2010.12.19
menu problem


2-1285069581
guest
2010-09-21 15:46
2010.12.19
Почему не работает?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский