Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранение порядка и ширин колонок в GridEh, Как это сделать ? 
:(
    Опции темы
AlexV1
Дата 3.3.2003, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 27.1.2003

Репутация: нет
Всего: нет



Товарищи программисты!
До использования GridEh я пользовался RxDBGrid, у которого есть свойство iniStorage, где указывается имя компонента TFormStorage. И все. Все ширины колонок, а также порядок колонок автоматически сохраняются от запуска к запуску программы.
Как проще всего поступить с GridEh ?
PM MAIL   Вверх
AntonSaburov
Дата 3.3.2003, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



Написать процедурку, которая это делает. А для этого посмотреть исходники RxDBGrid.
Делов-то biggrin.gif
PM MAIL WWW ICQ   Вверх
Medved
Дата 3.3.2003, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Там есть свойство, растягивания колонок автоматически. Может быть это тебе поможет?

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

P.S. кстати, может и в DBGridEh есть такая возможность, но я просто с ней не сталкивался, но ИМХО нет такого. Если что, можно связаться с самим автором, и у него спросить.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
AlexV1
Дата 3.3.2003, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 27.1.2003

Репутация: нет
Всего: нет



Цитата
Если все же ты хочешь сохранять установки пользователя, то только программно, при выходе из программы записывать их, а при открытии программы устанавливать программно.


Наверное так лучше.
Мне бы хотелось сохранять эти параметры в реестре.
Но с реестром я еще не имел дело.
Как в нем создавать параметры и пихать в них зн-я ? А потом читать.
Подскажите плиз, или линк, где можно об этом почитать.
PM MAIL   Вверх
Medved
Дата 3.3.2003, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



TRegistry

P.S. Посмотри в нашем FAQ. Там это есть.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
AntonSaburov
Дата 3.3.2003, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



IMHO не надо в регистри - пусть будет ini-файл.
Мне лично не нравится, когда регистри распухает до неприличных размеров.
PM MAIL WWW ICQ   Вверх
AlexV1
Дата 3.3.2003, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 27.1.2003

Репутация: нет
Всего: нет



А я уж и с реестром разобрался.
Думаю, что от двух строк типа '36,324,643,2,4,2,' реестр сильно не распухнет.

Сохранение ширин колонок
-------------------------------------------------
uses Registry;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var reg:TRegistry;
i:integer;
st:string;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('\Software\FTree',True);
// Сохраняем в реестр ширины колонок
st:='';
for i:=0 to DBGridEh1.Columns.Count-1 do
st:=st+IntToStr(DBGridEh1.Columns[i].width)+',';

Reg.writeString('gridEh1widths',st);
reg.CloseKey;
end;

procedure TForm1.FormShow(Sender: TObject);
var reg:TRegistry;
i:integer;
st,s1: string;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey('\Software\FTree',True);
// Считываем ширины колонок из реестра
st:=Reg.ReadString('gridEh1widths');
// st='34,12,65,246,1536,23,'
// Настраиваем сетку (ширины колонок)
for i:=0 to DBGridEh1.Columns.Count-1 do
begin
s1:=copy(st,1,pos(',',st));
delete(st,1,length(s1));
delete(s1,length(s1),1);
DBGridEh1.Columns[i].width:=StrToInt(s1);
end;

reg.CloseKey;
end;

PM MAIL   Вверх
Medved
Дата 5.3.2003, 06:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Рад сообщить что библиотека компонент EhLib версии 3.0 доступна для загрузки.
Скачать EhLib 3.0 можно здесь http://www.farpost.com/personal/dmitryb/RU...US/ehlibrus.exe
Пароль: ФЕВРАЛЬФЕВРАЛЬ

Что нового в версии 3.0

В TDBDateTimeEditEh

+ Новые значения в типе TDateTimeKindEh (свойство Kind).
TDateTimeKindEh = (dtkDateEh, dtkTimeEh, dtkDateTimeEh, dtkCustomEh);
+ Добавлено свойство EditFormat. Теперь вы можете набрать свой формат даты/времениt
используя следующие элементы формата: 'YY', 'YYYY', 'MM', 'DD', 'HH', 'NN', 'SS'.


Библиотека разделена на design-time и run-time пакеты.
EhLib[XX] - run-time пакет и DclEhLib[X] - design-time пакет,
где [XX] двузначый номер версии VCL:
и EhLibB[XX] c DclEhLibB[XX] под C++ Builder.

При инсатляции, все компоненты помещаются на отдельную страницу
палитры компонент - 'EhLib'.
Обратите внимание что Delphi IDE не переносит компонеты на новую страницу
по умолчанию, когда вы ставите новую версию тех же компонент. Так что
если у вас уже стояла библиотека версии ниже чем 3.0 то инсталяция этой
версии оставит компоненты на прежнем месте в палитре.
Чтобы заставить Delphi IDE перенести компонеты на новое место
по умолчанию, сделайте следующее:

Откройте меню: Component->Configure Palette.
Выберите строку '[All]' в листбоксе Pages.
Нажмите кнопку 'Default Pages'.


Новые компоненты: TPropStorageEh, TIniPropStorageManEh, TRegPropStorageManEh.
Реализует технологию сохранения и восстановления свойств компонент в/из ini
файлов и реестра.
Базовая компонента данной технологии это TPropStorageEh. Поместите это компоненту
на форму, свойства компонент которой вы хотите сохранять в хранилище настроек.
Двойной щелчок на компоненте в design-time'е открывает окно редактора свойств всех
компонент формы. В дереве свойств компонент вы можете отметить необходимые для
сохранения свойства. Список свойств является списком всех published свойств или
объявленных в функции DefineProperty компоненты за исключением свойств класса
TCollection. В дополнение к списку всех элементов коллекции, дерево свойств выводит
подсвойство <ForAllItems>, при отметки подсвойств в данной ветки компонента будет
сохранять соответствующие подсвойства для каждого элемента коллекции.

Компонент TPropStorageEh умеет сохранять/восстанавливать значения свойств в поток,
однако для перенаправления потока в хранилище настроек необходимо выполнить одно
из следующий действий.

1. Поместить на форму компонент порожденный от TPropStorageManagerEh. В данной
версии присутствуют такие компоненты, это TIniPropStorageManEh и TRegPropStorageManEh.
Правильно настроить свойства этих компонент и присвоить свойству
TPropStorageEh.StorageManager этот компонент.

2. Либо вы можете один раз написать код по регистрации глобального компонента
DefaultPropStorageManager. Все компоненты TPropStorageEh у которых не прописано
свойство StorageManager будут использовать менеджер DefaultPropStorageManager
для перенаправления потока значений свойств в хранилище настроек.

Код по регистрации глобального компонента может выглядеть примерно так:

----------- MainUnit.Pas--------
......
initialization

IniPropStorageMan := TIniPropStorageManEh.Create(nil);
IniPropStorageMan.IniFileName := 'MyIniFile.Ini';
SetDefaultPropStorageManager(IniPropStorageMan);
end.
--------------------------------


+ Добавлен design-time редактор компоненты ClientDataSet.
Смотри детали в AdvTech\CDSDesign\readme.txt dir.

CDSDesign содержит design-time редактор компоненты ClientDataSet,
Он унаследован от TFieldsEditor, включает все особенности
FieldsEditor и позволяет редактировать данные в ClientDataSet в design-time'е.
Вы можете вручную заполнить данные в design-time в отсоедененный ClientDataSet
без загрузки данных из файла или из другого датасета.


Best regards:
Dmitry V. Bolshakov
+7 (812) 159-44-96 (voice in Russia)
Home page: http://www.farpost.com/personal/dmitryb
E-mail: [email protected]
E-mail2: [email protected]
ICQ # 10785451


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0500 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.