purebasic.info

PureBasic forum
Текущее время: Вт апр 24, 2018 12:13 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: Чт янв 26, 2012 4:53 am 
Не в сети
док
Аватар пользователя

Зарегистрирован: Чт апр 22, 2010 9:59 pm
Сообщений: 83
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Код ниже. Очевидный плюс такого метода есть - это после создания контрола не требуется следить за записями аля Read или WritePreference.
Есть очевидный минус, например, если программа обновилась, то настройки не прочитаются.
Использую аналогичный код - это демо версия))) Очень удобно, а то меня так достало постоянно прописывать для каждого гаджета Read и Write эти преференсы. Может кому-то пригодиться или на мысль наведёт ;)

Код:
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
;- Enumeration
Enumeration
        #Window_0
EndEnumeration
 
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
 
Structure Gadget_struct    
        Gadget.l
        Group.s
EndStructure    
Global NewList Gadgets.Gadget_struct()
 
; Save settings
;
Procedure SaveSettings()
        If CreatePreferences(GetPathPart(ProgramFilename())+"Settings.ini")
                ForEach Gadgets()
                        PreferenceGroup(Gadgets()\Group)
                        WritePreferenceLong(Str(Gadgets()\Gadget),GetGadgetState(Gadgets()\Gadget))
                Next
                ClosePreferences()
        Else
                MessageRequester("Внимание!","Ошибка сохранения настроек.")
        EndIf
EndProcedure
 
; Read settings
;
Procedure ReadSettings()
        If OpenPreferences(GetPathPart(ProgramFilename())+"Settings.ini")
                ForEach Gadgets()
                        PreferenceGroup(Gadgets()\Group)
                        SetGadgetState(Gadgets()\Gadget,ReadPreferenceLong(Str(Gadgets()\Gadget),0))
                Next
                ClosePreferences()
        Else
                MessageRequester("Внимание!","Ошибка чтения настроек, все параметры будут сброшенны в состояние по умолчанию.")
        EndIf  
EndProcedure
 
; Create Window
;
Procedure Open_Window_0()
        If OpenWindow(#Window_0,0,0,600,600,"Name Programm")
               
                For x = 0 To 6
                        For y = 0 To 15
                                AddElement(Gadgets())
                                Gadgets()\Gadget = CheckBoxGadget(#PB_Any,x*100,y*20,100,20,"Check "+Str(x)+","+Str(y))
                                Gadgets()\Group = "System 1"
                        Next
                        For y = 16 To 30
                                AddElement(Gadgets())
                                Gadgets()\Gadget = CheckBoxGadget(#PB_Any,x*100,y*20,100,20,"Check "+Str(x)+","+Str(y))
                                Gadgets()\Group = "System 2"
                        Next
                Next
               
                ;Загружаем параметры
                ReadSettings() 
        EndIf
EndProcedure
 
;- Start Programm
Open_Window_0()
 
;- Events Programm
Repeat
        Event = WaitWindowEvent()
        Select Event
                Case #PB_Event_CloseWindow
                        SaveSettings()
                        End
        EndSelect
ForEver


_________________
Ubuntu 10.10, x86, PureBasic 4.40


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB