![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Dima85 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 396 Регистрация: 19.7.2007 Репутация: нет Всего: нет |
Пользуюсь Delphi 7. Подскажите пожалуйста как сделать что бы форма программы открывалась там где ее закрыли в последний раз (интересуют координаты top, left)? Нужно в реестр записывать координаты и в дальнейшем перед запуском их грузить или есть какое-то более простое решение?
|
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 20 Всего: 58 |
В реестр, можно еще в файл.
|
|||
|
||||
| REZiaMIX |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 3.11.2007 Репутация: нет Всего: 4 |
Вопрос делиться на две части:
1) Что надо сохранить!? 2) Куда сохранить? 1) Однозначно самым легким решением будет - сохранить Left & Top 2) Куда сохранить!? Тут уж как работает фантазия: В реестр , в файл простой записью , в xml файл через дополнительную библиотеку , в ini файл , в тело ехе-файла(для любителей извращений), и т.д. Что может быть проще(енто на C++):
Для дельфи думаю есть аналоги данных функций. Также в дельфи должен быть класс TRegistry для работы с реестром. Это сообщение отредактировал(а) REZiaMIX - 15.6.2009, 00:46 -------------------- ![]() |
|||
|
||||
| Dima85 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 396 Регистрация: 19.7.2007 Репутация: нет Всего: нет |
Какие есть способы сохранения данных и в дальнейшем загрузка их, я знаю, спасибо.
Вопрос был в том что может в Delphi это можно сделать одной командой, как допустим показывать программу всегда по центру рабочего стола и.т.д. |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 20 Всего: 58 |
Можете предусмотреть свою опцию - сохранять координаты. Встроенной команды нет. З.Ы. Я бы сделал это в INI-файле. Это сообщение отредактировал(а) Keeper89 - 15.6.2009, 00:58 |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
Между прочим, одно из условий сертификации программы Microsoft'ом - сохранение данных в реестре. Добавлено через 34 секунды
А записывать в реестр - слишком сложно? -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| REZiaMIX |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 3.11.2007 Репутация: нет Всего: 4 |
К тому же , WINAPI функции по работе с реестром - deprecated , и не факт что они будут работать в будущих версиях windows. Также с ini файлами(точнее с попытками сохранить их не в том месте) могут быть проблемы в vista. Думаю тут лучшее решение - реестр. Темболее с TRegistry в дельфи , работа с реестром сводиться к нескольким строчкам кода Да и через WINAPI - не сложно. -------------------- ![]() |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 20 Всего: 58 |
Да ну этот реестр фтопку, раздувать его по пустякам... ровно как и сертификацию А записать настройки в свой файл в директории приложения проблем меньше, ИМХО конечно. Это сообщение отредактировал(а) Keeper89 - 15.6.2009, 02:16 |
|||
|
||||
| Rennigth |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
Крайне не желательно... если уж в файл писать то он должен храниться в Application Data
В пакете Jedi, Eh есть для этого специальные компоненты. Бесплатных не видел, но и не искал -------------------- (* Honesta mors turpi vita potior *) |
||||
|
|||||
| THandle |
|
|||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 65 Всего: 372 |
||||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 20 Всего: 58 |
Я читал про политики безопасности Майкрософт и изолированное хранилище. Единственное, что мне не нравится - запись идет на диск с системой, а для установки программ может быть отведен другой диск. Получается, что программу ставишь в одно место, а настройки она будет хранить в другом, увеличивая в размерах этот системный диск. Конечно можно использовать перемещаемое хранилище, но его местонахождение в системе тоже не от разработчика зависит. В общем, мне не очень нравится. Это сообщение отредактировал(а) Keeper89 - 15.6.2009, 10:44 |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
Так то оно так, просто можно влипнуть если прав на запись не будет. Вообщем наверное для каждого конкретного случая нужно искать золотую середину -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
В JVCL (кто такие JCL, JVCL, JEDI) есть компонент TFormStorage (вкладка JvPersistence), который можно просто кинуть на форму, понакидать в него свойств, которые вы хотите сохранять. Они сами будут сохраняться и восстанавливаться при открытии/закрытии формы.
Осталось только завести в приложении компонент TAppRegistryStorage или TAppIniFileStorage (не помню точных названий) и настроить, где хранить настройки (имя файла, ключ реестра и т.п.), после чего связать TFormStorage с TAppXXXStorage. На самом деле всё выглядит проще, чем кажется, не так страшно. Библиотека ставится простым запуском install.bat. Сначала стаим JCL, затем - JVCL. Поддержка D2009 и Билдеров присутствует. Ну и позволю себе дать ссылочки на обсуждения: ini-файлы vs реестр. место хранения настроек. P.S. А JEDI, типа не бесплатен?
...одной рукой схватился за сердце, второй - за бутылку валерьянки... -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
Забыл что они бесплатные -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| Dima85 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 396 Регистрация: 19.7.2007 Репутация: нет Всего: нет |
Всем спасибо.
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |