| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Сохранение порядка и ширин колонок в GridEh |
| Автор: AlexV1 3.3.2003, 14:58 |
| Товарищи программисты! До использования GridEh я пользовался RxDBGrid, у которого есть свойство iniStorage, где указывается имя компонента TFormStorage. И все. Все ширины колонок, а также порядок колонок автоматически сохраняются от запуска к запуску программы. Как проще всего поступить с GridEh ? |
| Автор: AntonSaburov 3.3.2003, 19:43 |
| Написать процедурку, которая это делает. А для этого посмотреть исходники RxDBGrid. Делов-то |
| Автор: Medved 3.3.2003, 19:50 |
| Там есть свойство, растягивания колонок автоматически. Может быть это тебе поможет? Если все же ты хочешь сохранять установки пользователя, то только программно, при выходе из программы записывать их, а при открытии программы устанавливать программно. P.S. кстати, может и в DBGridEh есть такая возможность, но я просто с ней не сталкивался, но ИМХО нет такого. Если что, можно связаться с самим автором, и у него спросить. |
| Автор: AlexV1 3.3.2003, 22:05 | ||
Наверное так лучше. Мне бы хотелось сохранять эти параметры в реестре. Но с реестром я еще не имел дело. Как в нем создавать параметры и пихать в них зн-я ? А потом читать. Подскажите плиз, или линк, где можно об этом почитать. |
| Автор: Medved 3.3.2003, 22:10 |
| TRegistry P.S. Посмотри в нашем FAQ. Там это есть. |
| Автор: AntonSaburov 3.3.2003, 22:11 |
| IMHO не надо в регистри - пусть будет ini-файл. Мне лично не нравится, когда регистри распухает до неприличных размеров. |
| Автор: AlexV1 3.3.2003, 22:58 |
| А я уж и с реестром разобрался. Думаю, что от двух строк типа '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; |
| Автор: Medved 5.3.2003, 06:44 |
| Рад сообщить что библиотека компонент EhLib версии 3.0 доступна для загрузки. Скачать EhLib 3.0 можно здесь http://www.farpost.com/personal/dmitryb/RUS/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: dmitryb@tax25.marine.su E-mail2: dmitryb@farpost.com ICQ # 10785451 |