Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сохранить внешний вид таблицы. [D7, Paradox]


Mozart ©   (2005-05-06 11:24:00) 

Есть DBGrid для отображения данных, как лучше сохранить все параметры отображения (Visible, DisplayLabel, Width и др.) для полей. Также нужно сохранять порядок их отображения, допустим - для работы с программой нужно сохранить 3 различных вида отображения таблицы и в любой момент, когла понадобится - переключаться между этими видами.

Может у кого есть готовый кусок кода?

Или подскажите как тут лучше действовать? (чтоб не нарваться на ряд бесконечных ошибок).

И еще вопрос по отрисовке DBGrid:


 if (Table1.RecNo mod 2)=1 then
  with  TDBGrid(Sender).Canvas do
   begin
    Brush.Color:=RGB(224,224,216);
    Font.Color:=clBlack;
   end else
   begin
    Brush.Color:=clWhite;
    Font.Color:=clBlack;
   end;

if gdSelected in State then
 with  TDBGrid(Sender).Canvas do
 begin
   Brush.Color:= clHighLight;
 Font.Color := clHighLightText;
 end;

 If (Table1.FieldByName('TABLE_N').AsString='')and(Table1.FieldByName('PLACE_N').AsString='') then
 with  TDBGrid(Sender).Canvas do
  begin
   Brush.Color:=clRed;
   Font.Color:=clBlack;
  end;

if DateToStr(Table1.FieldByName('DATE_PRIEZD').AsDateTime)=DateToStr(Now) then
 if Column.Field.FieldName='NUMB_IST' then
 with  TDBGrid(Sender).Canvas do
  begin
   Brush.Color:=RGB(231,166,167);
   Font.Color:=RGB(41,73,4);
  end;

 if DateToStr(Table1.FieldByName('DATE_OTEZD').AsDateTime)=DateToStr(Yesterday) then
 if Column.Field.FieldName='NUMB_IST' then
 with  TDBGrid(Sender).Canvas do
  begin
   Brush.Color:=clSilver;
   Font.Color:=clGray;
  end;

  TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);

end;


После загрузки таблицы (в самом начале) ячейка выделения становится на вторую позицию, хотя фактически в данный момент выбрана первая запись, почему происходит неверное отображение? как от этого избавиться?


Max Zyuzin   (2005-05-06 17:35:00) [1]

>Alexandr ©   (06.05.05 17:17) [5]
Присоединяюсь!


Alexandr   (2005-05-06 17:17:00) [2]

www.ehlib.com


Mozart   (2005-05-06 17:16:00) [3]

А порядок? Самое сложное расположить в нужном порядке....
Если бы он не имел значения, то как ты говоришь- все получается без проблем,....


alexeis   (2005-05-06 14:08:00) [4]

>Mozart   (06.05.05 13:46) [2]
Просто взяв ини - замучился: слишком завернутый код получается, и всеравно ошибки проскакивают.... Может проще как-нибудь можно?..


:-)
3 состояния-3 раздела
ключи-названия параметров (Цвет,Ширина...), ну и соотв. их значения


Mozart   (2005-05-06 13:46:00) [5]

Ок, к примеру берем ини, какова структура?
а как потом порядок организовать?
Просто взяв ини - замучился: слишком завернутый код получается, и всеравно ошибки проскакивают.... Может проще как-нибудь можно?..


alexeis   (2005-05-06 13:15:00) [6]

Для сохранения или реестр или ини-файл


Наверх

Титульная страница Поиск, карта сайта Написать письмо