Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
4 / 4 / 2
Регистрация: 26.04.2021
Сообщений: 84
1

Не сохраняются настройки программы

12.10.2021, 17:31. Показов 1048. Ответов 12

Author24 — интернет-сервис помощи студентам
Здраствуйте, народ. Делаю программу для курсовой, решил сделать темную тему, сделал. Но вот одна проблема - при выходе тема не сохраняется (конечно же я знал что она не будет сохраняться). Решил сделать так: при включении тёмной темы записывать единицу в текстовый документ, если же выключить тёмную тему (тоесть включить светлую), то записать 0. Потом при следуйщем заходе в программу, в событие Form_Load я проверял, какое число стоит в текстовом документе, если 1 - менять тему на тёмную, если 0 - оставлять светлую. Но в итоге не получается, прошу помощи. Вот код:

Код главной формы
Visual Basic
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
'Показ зображення та дані фігури при наведенні на кнопку "Трикутник"
Private Sub CButton_Figure1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Image_Figure.Visible = True
    Label_Figure.Visible = True
    Title_Figure.Visible = True
    Description_Figure.Visible = True
    
    Label_Figure.Caption = "Трикутник"
    Title_Figure.Caption = "Основні дані"
    Description_Figure.Caption = "Трикутник - це геометрична фігура, яка складається з трьох точок, що не лежать на одній прямій, і трьох відрізків, які їх сполучають."
    Image_Figure.Picture = LoadPicture(App.Path & "\Images\Triangle.jpg")
End Sub
 
'Показ зображення та дані фігури при наведенні на кнопку "Прямокутник"
Private Sub CButton_Figure2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Image_Figure.Visible = True
    Label_Figure.Visible = True
    Title_Figure.Visible = True
    Description_Figure.Visible = True
    
    Label_Figure.Caption = "Прямокутник"
    Title_Figure.Caption = "Основні дані"
    Description_Figure.Caption = "Прямокутник - це чотирикутник, усі кути якого прямі. Протилежні сторони прямокутника рівні. Є окремим випадком паралелограма."
    Image_Figure.Picture = LoadPicture(App.Path & "\Images\Rectangle.jpg")
End Sub
 
'Показ зображення та дані фігури при наведенні на кнопку "Квадрат"
Private Sub CButton_Figure3_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Image_Figure.Visible = True
    Label_Figure.Visible = True
    Title_Figure.Visible = True
    Description_Figure.Visible = True
    
    Label_Figure.Caption = "Квадрат"
    Title_Figure.Caption = "Основні дані"
    Description_Figure.Caption = ("Квадрат - це чотирикутник, у якого всі сторони рівні і всі кути прямі. Для побудови квадрата необхідно і достатньо задати дві точки на координатній площині, які відповідатимуть будь-яким двом кутам і врахувати їхню суміжність." + vbCrLf + vbCrLf + "Квадрат є водночас ромбом та прямокутником і навпаки: кожна фігура, яка є водночас ромбом і прямокутником, є квадратом.")
    Image_Figure.Picture = LoadPicture(App.Path & "\Images\Square.jpg")
End Sub
 
'Показ зображення та дані фігури при наведенні на кнопку "Паралелограм"
Private Sub CButton_Figure4_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Image_Figure.Visible = True
    Label_Figure.Visible = True
    Title_Figure.Visible = True
    Description_Figure.Visible = True
    
    Label_Figure.Caption = "Паралелограм"
    Title_Figure.Caption = "Основні дані"
    Description_Figure.Caption = ("Паралелограм - це чотирикутник, протилежні сторони якого попарно паралельні, тобто лежать на паралельних прямих." + vbCrLf + vbCrLf + "Паралелограм є плоскою геометричною фігурою, його аналогом у тривимірному просторі є паралелепіпед.")
    Image_Figure.Picture = LoadPicture(App.Path & "\Images\Parallelogram.jpg")
End Sub
 
'Показ зображення та дані фігури при наведенні на кнопку "Ромб"
Private Sub CButton_Figure5_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Image_Figure.Visible = True
    Label_Figure.Visible = True
    Title_Figure.Visible = True
    Description_Figure.Visible = True
    
    Label_Figure.Caption = (vbCrLf + "Ромб")
    Title_Figure.Caption = "Основні дані"
    Description_Figure.Caption = ("Ромб - це паралелограм, у якого всі сторони рівні. Ромб, сторони якого утворюють прямий кут, називають квадратом." + vbCrLf + vbCrLf + "Діагоналі ромба перетинаються під прямим кутом. Діагоналі ромба є бісектрисами його кутів.")
    Image_Figure.Picture = LoadPicture(App.Path & "\Images\Rhombus.jpg")
End Sub
 
'Показ зображення та дані фігури при наведенні на кнопку "Трапеція"
Private Sub CButton_Figure6_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Image_Figure.Visible = True
    Label_Figure.Visible = True
    Title_Figure.Visible = True
    Description_Figure.Visible = True
    
    Label_Figure.Caption = (vbCrLf + "Трапеція")
    Title_Figure.Caption = "Основні дані"
    Description_Figure.Caption = ("Трапеція - це чотирикутник, дві протележні сторони якого паралельні, а дві інші сторони - не паралельні." + vbCrLf + vbCrLf + "Паралельні сторони називають основами трапеції (верх і низ). Інші сторони називають бічними сторонами (ліво і право).")
    Image_Figure.Picture = LoadPicture(App.Path & "\Images\Trapezium.jpg")
End Sub
 
'Показ зображення та дані фігури при наведенні на кнопку "Круг"
Private Sub CButton_Figure7_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Image_Figure.Visible = True
    Label_Figure.Visible = True
    Title_Figure.Visible = True
    Description_Figure.Visible = True
    
    Label_Figure.Caption = (vbCrLf + "Круг")
    Title_Figure.Caption = "Основні дані"
    Description_Figure.Caption = "Круг - це геометрична фігура, обмежена колом. Іншими словами, круг - це множина, яка складається з усіх точок площини, відстань від яких до даної точки центра (центр круга) не перевищує заданої відстані (радіуса). Коло є межею круга."
    Image_Figure.Picture = LoadPicture(App.Path & "\Images\Circle.jpg")
End Sub
 
'Показ зображення та дані фігури при наведенні на кнопку "Еліпс"
Private Sub CButton_Figure8_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Image_Figure.Visible = True
    Label_Figure.Visible = True
    Title_Figure.Visible = True
    Description_Figure.Visible = True
    
    Label_Figure.Caption = "Еліпс"
    Title_Figure.Caption = "Основні дані"
    Description_Figure.Caption = "Еліпс - це крива на площині, що проходить довкола двох точок фокусів, таким чином, що сума відстаней до двох точок фокусів залишається сталою для кожної точки кривої. Окремим випадком еліпса є коло, що є еліпсом в якого обидві точки фокусу суміщені в одну"
    Image_Figure.Picture = LoadPicture(App.Path & "\Images\Ellipse.jpg")
End Sub
 
'Кнопка "Налаштування"
Private Sub SettingsButton_Click()
    SettingsForm.Show
    MainForm.Hide
End Sub
 
'Кнопка "Вихід"
Private Sub ExitButton_Click()
    Unload MainForm
    Unload LoadingForm
    Unload SettingsForm
End Sub
 
'Зникнення зображення при наведенні на форму
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
        
'Відновлення теми
    SettingsFile = FreeFile
    Open (App.Path & "\SettingsFile.txt") For Input As #SettingsFile
    Line Input #SettingsFile, ThemeState
    Close #SettingsFile
    
    Image_Figure.Visible = False
    Label_Figure.Visible = False
    Title_Figure.Visible = False
    Description_Figure.Visible = False
    
'Налаштування теми
     If SettingsForm.ThemeState = 1 Then
     
'Налаштування темної теми
        MainForm.BackColor = &H0&
        Description_Figure.BackColor = &H0&
        Title_Figure.BackColor = &H0&
        Label_Figure.BackColor = &H0&
        
        Description_Figure.ForeColor = &HFFFFFF
        Title_Figure.ForeColor = &HFFFFFF
        Label_Figure.ForeColor = &HFFFFFF
    Else
 
'Налаштування світлої теми
        MainForm.BackColor = &HFFFFFF
        Description_Figure.BackColor = &HFFFFFF
        Title_Figure.BackColor = &HFFFFFF
        Label_Figure.BackColor = &HFFFFFF
        
        Description_Figure.ForeColor = &H0&
        Title_Figure.ForeColor = &H0&
        Label_Figure.ForeColor = &H0&
    End If
End Sub
Код формы настроек
Visual Basic
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
'Реєстрація глобальної змінни налаштувань теми
Public ThemeState As Integer
 
'Файл збереження налаштувань
Public SettingsFile
 
'Зміна теми на темну
Public Sub Button_ThemeOn_Click()
    SettingsForm.BackColor = &H0&
    Label_Theme.BackColor = &H0&
    Label_Theme.ForeColor = &HFFFFFF
    ThemeState = 1
    
    SettingsFile = FreeFile
    Open (App.Path & "\SettingsFile.txt") For Output As #SettingsFile
    Print #SettingsFile, "1"
    Close #SettingsFile
End Sub
 
'Зміна теми на світлу
Private Sub Button_ThemeOff_Click()
    Label_Theme.BackColor = &HFFFFFF
    SettingsForm.BackColor = &HFFFFFF
    Label_Theme.ForeColor = &H0&
    ThemeState = 0
    
    SettingsFile = FreeFile
    Open (App.Path & "\SettingsFile.txt") For Output As #SettingsFile
    Print #SettingsFile, "0"
    Close #SettingsFile
End Sub
 
'Кнопка "Повернутися"
Private Sub ReturnButton_Click()
    MainForm.Show
    SettingsForm.Hide
End Sub
Вот скриншоты главной формы и формы настроек
Не сохраняются настройки программы

Не сохраняются настройки программы
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.10.2021, 17:31
Ответы с готовыми решениями:

Куда сохраняются настройки программы
Здравствуйте, я раньше для сохранения настроек использовал сериализованный xml. тут решил...

Не сохраняются настройки
Друзья, очень прошу помочь, нигде не могу найти решение проблемы. Сейчас на десктопном компьютере...

Не сохранЯются настройки
Здравствуйте, у меня установлен PTC MathCAD v15 M020, при каждом выходе слетают все настройки...

Не сохраняются настройки
Здравствуйте, подскажите пожалуйсто: как сделать чтобы подключения библиотек не "сбрасывалось"... А...

12
6804 / 2831 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
12.10.2021, 17:38 2
Цитата Сообщение от AoHeaven Посмотреть сообщение
Вот код
Проще прикрепить проект ( в виде архива )к сообщению. Тяжело по вашим картинкам собирать форму, вряд ли кто станет этим заниматься.
0
4 / 4 / 2
Регистрация: 26.04.2021
Сообщений: 84
12.10.2021, 17:42  [ТС] 3
Секунду
0
4 / 4 / 2
Регистрация: 26.04.2021
Сообщений: 84
12.10.2021, 17:43  [ТС] 4
Program.zip

Вот сама программа, всё необходимое там
0
4 / 4 / 2
Регистрация: 26.04.2021
Сообщений: 84
13.10.2021, 20:08  [ТС] 5
Ап, помогите пожалуйста
0
help
4253 / 3856 / 782
Регистрация: 13.04.2015
Сообщений: 8,532
13.10.2021, 20:16 6
Лучший ответ Сообщение было отмечено AoHeaven как решение

Решение

Program1.rar
0
533 / 375 / 76
Регистрация: 24.09.2017
Сообщений: 2,108
Записей в блоге: 13
13.10.2021, 20:24 7
В коде MainForm:
Visual Basic
1
2
3
4
5
.....
'Налаштування теми
'     If SettingsForm.ThemeState = 1 Then
     If S = 1 Then
.....
Это навскидку.
1
Наивное Существо
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
13.10.2021, 21:02 8
AoHeaven, а чему равен App (App.Path) ?
Может быть, оно разное при чтении и при записи.? Что-то не вижу присваивания...
0
533 / 375 / 76
Регистрация: 24.09.2017
Сообщений: 2,108
Записей в блоге: 13
13.10.2021, 21:17 9
Цитата Сообщение от vedunasv Посмотреть сообщение
а чему равен App (App.Path) ?
https://docs.microsoft.com/ru-... ation.path
Это свойство приложения, указывающее путь к нему, т.е. каталог, в котором находится .exe
Если исполняемый файл не создан, то App.Path указывает путь к каталогу, в котором находятся файлы разработки.
0
Наивное Существо
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
13.10.2021, 21:23 10
AoHeaven, Argus19 правильно задаёт направление поиска. А я уточняю - чему равно

'Налаштування теми
If SettingsForm.ThemeState = 1 Then

'Налаштування темної теми


у Вас SettingsForm.ThemeState не имеет значения и никогда не будет =1, поэтому всегда идёт на ELSE (на светлую сторону).

Добавлено через 1 минуту
Argus19, я єто знаю, но бывает из бейсика один путь, а из экзешника другой, Но найдена более грубая ошибка - написал выще...

Сам конфигурационный файл заполняется нормально - стоит 1 или 0 - как положено.
1
533 / 375 / 76
Регистрация: 24.09.2017
Сообщений: 2,108
Записей в блоге: 13
13.10.2021, 21:33 11
Цитата Сообщение от vedunasv Посмотреть сообщение
но бывает из бейсика один путь, а из экзешника другой,
Из IDE путь к каталогу в котором находится проект, а из скомпилированного файла путь к каталогу, где находится сам .exe.
Если файл проекта не сохранён, то будет путь к каталогу, где находится IDE. У меня:
C:\Program Files\Microsoft Visual Studio\VB98
1
Наивное Существо
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
13.10.2021, 21:40 12
про это и пишу, только другими словами. Но этот момент уже закрыт - там всё правильно.
Благодарю за внимание.
0
4 / 4 / 2
Регистрация: 26.04.2021
Сообщений: 84
13.10.2021, 23:03  [ТС] 13
Всем спасибо за ответы и помощь, буду знать
0
13.10.2021, 23:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.10.2021, 23:03
Помогаю со студенческими работами здесь

Не сохраняются настройки в файл
Всем привет!) Есть такой код: final File cfg_file = new...

Не сохраняются настройки приложения
В приложении использована связка jvFormStorage и jvAppIniFileStorage для сохранения настроек окон и...

Не сохраняются настройки биос
Здравствуйте, проблема в том, что компьютер почему-то сам переключается на встроенную видеокарту,...

Не сохраняются настройки compiz
Доброго времени суток. Совершаю определенные настройки в CompizConfig Settings Manager, закрываю...

Не сохраняются настройки плагина
Пишу плагин Paid Post. Сделал для него пробную страницу настроек (она пока там одна). Выводится...

Настройки CSS не сохраняются
Здравствуйте, проблема, когда меняю CSS стили они меняются, НО через некоторое время опять...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru