Форум: "Потрепаться";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.04;
Скачать: [xml.tar.bz2];




Вниз

сохранение пользовательского интерфейса 


Nataliya   (2002-02-18 10:26) [0]

Please, help. Как сохранить пользовательский интерфейс приложения после его закрытия.



Serghei   (2002-02-18 10:55) [1]

Запиши свои настройки в ini файл (ы)! При запуске читай оттуда нужные настройки!
Удачи!
Сорри если не правильно понял вопрос!



Анонимщик   (2002-02-18 10:56) [2]

Нужно либо писать параметры в какой-нибудь ini-файл, либо сохранять всю форму в файловый поток (FileStrem.Write(MyForm)), а потом загружать в рантайме, но в последнем случае нужно еще и обеспечить сохранение функциональности для обработки событий.



kronprince   (2002-02-18 11:02) [3]

Напиши подробнее, pls.

Если внешний вид форм то пользуйся чем-то вроде FormStorage из RXTools или напиши собственые функции которые параметры нужных тебе объектов сохраняли/загружали в реестр/INI-файл



[NIKEL]   (2002-02-18 11:17) [4]

сохраняй всё что надо в реестре - легко и без напряг :)



IronHawk   (2002-02-18 11:39) [5]

РЕЕСТР ЭТО СТРЁМНО !
Может рухнуть или при востановлении затереться его часть с данными о пользовательском интерфейсе!
INI-файлы самый клас !

Кому надо могу дать реально-безглючно работающий код !




[NIKEL]   (2002-02-18 11:51) [6]

INI - отстой, их использовали в WIN 3.1 пережиток прошлого :)
а если руки растут откуда надо то реестр самое то... сама MS рекомендует использовать именно реестр - реально подгатовленная база для использования, удобнее придумать нельзя...



IronHawk   (2002-02-18 12:36) [7]

>>> [NIKEL] ©
сразу видно что ты с виндами неработал !



[NIKEL]   (2002-02-18 13:12) [8]

>>> IronHawk
обоснуй



Фэ   (2002-02-18 13:16) [9]

На самом деле ini удобней.
Меньше размер, можно запускать несколько копий приложения с разных каталогов, если слетит реестр то и все слетит, подготовленный ini можно раздавать пользователям...



[NIKEL]   (2002-02-18 13:28) [10]

что значит "если слетит реестр то и все слетит" ?
Можно также сказать: а если "слетит" INI файл (что более вероятнее (ничайно стерли)) ?
Если грамотно подойти к реестру, то при сбоях можно реализовать положение по умолчанию и снова востановить ключи, всё можно коректно обработать, любой слёт.

На сколько меньше размер? размер - понятие относительное...
подготовленный Reg файл тоже можно раздавать пользователям

А вот то что лишние файлы (INI) появляються - это факт.



Alx2   (2002-02-18 13:33) [11]

Короче говоря, получается, что хранить надо в ресурсах, внутри exeшника :)



Digitman   (2002-02-18 13:47) [12]

>Nataliya
Приведи пример, какие конкретные настройки UI нужно сохранять



IronHawk   (2002-02-18 13:58) [13]

>>> [NIKEL] ©
Обосновываю:
Реестр каждый раз резервируеться или проверяеться,
незавершенные ветки удаляються, либо востанавливаються из предыдущей копии !
Вовремя оборотов с реестром когда программа даёт - глюк, во время сохранения параметров пользовательского интерфейса это весело как правило это приводит к завершению задачи через RESET
параметры либо обнуляються либо несохраняються !
А ПОЛЬЗОВАТЕЛИ ЕСТЬ РАЗНЫЕ И МОГУТ ВЫКИДЫВАТЬ ТАКИЕ ВЕСЧИ ВО ВРЕМЯ РАБОТЫ ПРОГИ С РЕЕСТРОМ, ЧТО ПРЕДСТАВЛЕНИЮ НЕПОДЛЕЖИТ !
INI-файл никому немешающая не портящая ничего файлина...
ВЫВОД !
ИНИ - Старо но актуальности нетеряет !



vuk   (2002-02-18 14:19) [14]

Кстати, о птичках. Сейчас, вот, дописываю один компонент как раз для сохранения настроек приложения. :o) А-ля FormStorage из RxLib, только покруче будет - с фреймами нормально работает, хранить данные, потенциально, можно не только в реестре и .ini и т.д. и т.п. Интересно кому?



IronHawk   (2002-02-18 14:27) [15]

>>> vuk ©
Скинь на мыло гляну !



vuk   (2002-02-18 14:39) [16]

to IronHawk:
Чуть позже, OK? Кое-что надо протестировать...

А вообще, я в ближайшее время собираюсь его на "Полигон" в "Королевстве Delphi" выложить.



Awex   (2002-02-18 15:23) [17]

2vuk>
>Кстати, о птичках. Сейчас, вот, дописываю один компонент как >раз для сохранения настроек приложения. :o) А-ля FormStorage из >RxLib, только покруче будет - с фреймами нормально работает, >хранить данные, потенциально, можно не только в реестре и .ini >и т.д. и т.п. Интересно кому?

Да, даже очень.
Позволь идейку еще подкинуть: Нужно дать возможность сохраненения настроек в BLOB поле.
То есть, зачем это нужно - каждый юзер идентифицируется в системе, и соответственно его настройки храняться в БД, и если он переходит на другую машину (и регистрируется под своим именеми), его персональные настройки востанавливаются.
По моему будет очень удобно.






vuk   (2002-02-18 15:33) [18]

>Нужно дать возможность сохраненения настроек в BLOB поле.
Я об этом думал. Пришел к такому выводу - у каждого своя структура БД и свои приемы работы с БД, и поэтому сделать универсальную схему, которая бы удовлетворяла всех просто невозможно. Поэтому у меня подход другой.
Компоненты, отвечающие за то, где хранятся данные вынесены за пределы того компонента, который работает со свойствами компонентов, поэтому можно достаточно легко сделать своего наследника под свои нужды и хранить данные где угодно. У меня на данный момент реализованы только реестр, .ini а также компонент, где для каждой операции можно назначить свой обработчик. Видимо потом, по мере необходимости, будет сделано сохранение в XML...



Awex   (2002-02-18 15:43) [19]

>vuk
Ok.
Когда будет доступна бетта версия для тестирования ? :))))



vuk   (2002-02-18 15:52) [20]

>Когда будет доступна бетта версия для тестирования ?
Я сейчас вношу некоторые изменения, по-мелочи. Потом надо будет протестировать, подправить пример использования. Я думаю, что либо сегодня к вечеру, либо завтра.



Awex   (2002-02-18 15:58) [21]

Ok.
Ждем.



vuk   (2002-02-19 17:05) [22]

Ну что, остались еще желающие побыть бета-тестерами? :o)



IronHawk   (2002-02-19 17:09) [23]


> vuk © (19.02.02 17:05)
> Ну что, остались еще желающие побыть бета-тестерами? :o)

АГА !
ВАЛЯЙ !



oomneeq   (2002-02-19 17:33) [24]

Вопрос очень близок к соседнему топку
http://delphi.mastak.com/cgi-bin/forum.pl?ook=1&id=1014112454&n=0
там я ссылку дал на правильную статейку.
Поможет



oomneeq   (2002-02-19 17:35) [25]

Пардон, буква выпала
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1014112454&n=0



Vuk   (2002-02-19 17:44) [26]

Ушло на IronHawk@ukrpost.net.
Теперь некоторые пояснения. В компонентах используется такая немного нестандартная вещь, как обработчики событий в классах, унаследованых от TCollectionItem. Тонкость такая - в IDE Delphi5 есть баг, из-за которого в случае назначения такого обработчика невозможно создать наследника от формы или поместить фрейм на форму. Поэтому по-умолчанию для Delphi5 элементы коллекций обработчиков не имеют, но если это все же необходимо, то это можно изменить при помощи двух переменных компилятора CollectionItemEvents и D5BUGWORKAROUND в файле pstgver.inc

В Delphi6 этот баг устранен.



Awex   (2002-02-20 14:01) [27]

Vuk>
И мне если можно тоже.



vuk   (2002-02-20 14:09) [28]

Ушло.



oomneeq   (2002-02-20 15:37) [29]

2 vuk
Ecли под 5ю дельфию, то и мне интересно.



vuk   (2002-02-20 15:41) [30]

ушло.



deleon   (2002-02-21 15:27) [31]

Советую для хранения настроек TDataFile:
можно хранить что угодно, начиная со строк неограниченной длины и заканчивая байтовыми массивами!
http://www.dbwork.kuban.ru



Deus   (2002-02-21 15:30) [32]

2vuk:
Очень было бы здорово иметь возможность шифрования сохранённых данных. Могу покинуть модуль с двумя простенькими функциями шифрования/дешифрования.



Deus   (2002-02-21 15:31) [33]

2vuk:
Очень было бы здорово иметь возможность шифрования сохранённых данных. Могу подкинуть модуль с двумя простенькими функциями шифрования/дешифрования.



vuk   (2002-02-21 16:19) [34]

to deleon & Deus:
Угодить всем невозможно (тот же самый случай, что и с сохранением в БД), поэтому еще раз повторяю - для построения сохранения в любой формат достаточно построить класс-наследник от абстрактного класса-хранилища и переопределить там несколько методов (не более 10) или использовать компонент, где все операции загрузки/сохранения сделаны через обработчики.




Deus   (2002-02-21 16:45) [35]

2vuk:
Где тут берут в бета-тестеры? :))
когда будет ready to test, пришли мне на hs@fromru.com
(хотя наверно проще будет выложить где-нть и ссылку в конфу кинуть)



deleon   (2002-02-21 17:11) [36]

Кстати TDataFile - шифрует данные!



Deus   (2002-02-21 17:15) [37]

2deleon:
Просто ксорит...



vuk   (2002-02-21 17:30) [38]

to Deus:
Я хочу все получше отладить сам, а потом уже в широкий доступ выкладывать, я уже об этом писал. А тем, кто захотел потестировать, я исходники выслал. Вам тоже. :o)



Deus   (2002-02-21 17:38) [39]

2Vuk:
Ок, спасибо!




Форум: "Потрепаться";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.04;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.79 MB
Время: 0.029 c
14-9622           samos                 2002-02-22 15:43  2002.04.04  
Народ!!!! Очень нуно Каким образом сделать IExplore многопользовательским ДЛЯ wIN9XXX


1-9519            Tsatur Soft           2002-03-22 22:48  2002.04.04  
Чтение с дискеты


3-9416            Vlad2                 2002-03-13 11:28  2002.04.04  
DBGrid


1-9582            dymka                 2002-03-24 20:02  2002.04.04  
Про назначение имен обработчиков событий


3-9414            Draculenok            2002-03-13 12:11  2002.04.04  
Создание отчета по нескольким линям мемо( чуть не хватает.....)