|
|
|
Непонятие с Ini файлом
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. И так, проблема такая. После закрытия программы, все что было изменено и сохранено во время работы - исчезает. Остается то, что было до открытия программы. Во время работы, данные записывается в INI-файле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2017, 12:38 |
|
||
|
Непонятие с Ini файлом
|
|||
|---|---|---|---|
|
#18+
И еще один вопрос ... Как лучше работать с ini-файлом: или каждый раз когда необходимо сохранить данные инициализировать переменную и после сохранение ее уничтожить, или инициализировать Ini переменную при создании формы и только в конце работы, ее уничтожить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2017, 12:57 |
|
||
|
Непонятие с Ini файлом
|
|||
|---|---|---|---|
|
#18+
Первую проблему решил. В основной форме без выгоды лежал компонент RzRegIniFile1 в котором и была проблема. Но остается открытым вопрос, как лучше работать с INI-переменной? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2017, 13:39 |
|
||
|
Непонятие с Ini файлом
|
|||
|---|---|---|---|
|
#18+
Irmantas SimaitisНо остается открытым вопрос, как лучше работать с INI-переменной?Если часто, регулярно дергать надо, то чтоб не перезоздавать объект постоянно - лучше создать один раз. Если редко - то можно создал/использовал/удалил. Вообще разницы особой нет - там тупые обертки над апи-фциями Read/WritePrivateProfile*. Неужели самому сложно исходники посмотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2017, 14:26 |
|
||
|
Непонятие с Ini файлом
|
|||
|---|---|---|---|
|
#18+
YuRockIrmantas SimaitisНо остается открытым вопрос, как лучше работать с INI-переменной?Если часто, регулярно дергать надо, то чтоб не перезоздавать объект постоянно - лучше создать один раз. Если редко - то можно создал/использовал/удалил. Вообще разницы особой нет - там тупые обертки над апи-фциями Read/WritePrivateProfile*. Неужели самому сложно исходники посмотреть. Спасибо YuRock. Самому несложно, но иногда полезно услышать и другие мнения ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2017, 19:48 |
|
||
|
Непонятие с Ini файлом
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Как-то так. Не забудь, когда время придёт - надо разрушить IniFile ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2017, 19:55 |
|
||
|
Непонятие с Ini файлом
|
|||
|---|---|---|---|
|
#18+
кусок рабочего кода из рабочего проекта. Ini файл создается как синглтон, всегда в единственном экземпляре Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2017, 05:11 |
|
||
|
Непонятие с Ini файлом
|
|||
|---|---|---|---|
|
#18+
DetSimen Код: pascal 1. Зачем константа? Чем переменная не угодила? DetSimen Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Зачем присваивать обратно в nil? Оно и так nil. Отлов исключения, отображение не текста исключения, а абстрактной ошибки и возвращение nil при ошибке это верх гениальности DetSimen Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. И опять - кого интересует реальная ошибка? Просто сделаем rs_IniWriteError DetSimen Код: pascal 1. Ну и какой великий смысл в if Assigned()? Вы код метода Free видели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2017, 16:43 |
|
||
|
Непонятие с Ini файлом
|
|||
|---|---|---|---|
|
#18+
Как я использую Ini-файл. В Ini я храню множество настроек программы, сейчас размер файла составляет порядка 57кб. От использования TIniFile отказался в пользу TMemIniFile - он намного быстрее работает т.к не лазит за каждым параметром в файл заново. В главной форме (которая создается первой) объявляю глобальную переменную Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. И ее видно из всего приложения. Создается и разрушается Ini в событиях главной формы. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Для каждого окна своя секция - примерно по имени класса окна. Для некоторых случаев имя секции создается динамически, в частности для использования с отчетами FastReport - используется префикс и ID отчета. Получается что у каждой формы своя секция в Ini-файле. Что бы не писать в каждом Read/Write имя конкретной секции, завожу в форме локальную константу IniSectionName. Это дает возможность копипастить чтение и запись обычных параметров которые есть в большинстве форм. Еще может быть удобным использование специального класса для хранения настроек, когда параметры глобальные а не по формам, и часто использутся. Можно городить свой класс и прочее, но оказалось удобно использовать для этого DataModule. Обзываем его например CFG: TDataModule и элементарно объявляем у него поля. Обращаться потом удобно, например Код: pascal 1. При создании CFG зачитываем его параметры из того же Ini а при Destroy выгружаем обратно. Ну или в базе и т.п. Лично мне удобно когда в списке модулей есть эта сущность CFG. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2017, 04:29 |
|
||
|
Непонятие с Ini файлом
|
|||
|---|---|---|---|
|
#18+
fraksКак я использую Ini-файл. Для каждого окна своя секция - примерно по имени класса окна. ... Что бы не писать в каждом Read/Write имя конкретной секции, завожу в форме локальную константу IniSectionName. Это дает возможность копипастить чтение и запись обычных параметров которые есть в большинстве форм. ... Можно было вообще Form.ClassName использовать в таком случае :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2017, 09:51 |
|
||
|
Непонятие с Ini файлом
|
|||
|---|---|---|---|
|
#18+
alekcvpfraksКак я использую Ini-файл. Для каждого окна своя секция - примерно по имени класса окна. ... Что бы не писать в каждом Read/Write имя конкретной секции, завожу в форме локальную константу IniSectionName. Это дает возможность копипастить чтение и запись обычных параметров которые есть в большинстве форм. ... Можно было вообще Form.ClassName использовать в таком случае :) Давным давно когда я это делал, то пытался использовать Form.Name но она автонумеруется и каждый последующий экземпляр класса имеет собственное имя. А до Form.ClassName я чего-то не догадался :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2017, 12:52 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39422653&tid=2041444]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
242ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 247ms |
| total: | 610ms |

| 0 / 0 |
