Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Сохранение состояния двух TDBGrid на форме. Глюк? / 3 сообщений из 3, страница 1 из 1
15.09.2012, 23:02
    #37959016
GermanU
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение состояния двух TDBGrid на форме. Глюк?
Собственно TDBGrid имеет очень удобную фитчу для сохранения своего состояния в файл. В последующем эти настройки можно загрузить восстановив тем самым состояние настроек грида. Причем для настроек разных гридов приложения можно использовать один файл. Если грид на форме один, то все работает замечательно. Если гридов на форме несколько, то при сохранении настроек возникает глюк (проверял только на 7 версии грида). Глюк заключается в том, что настройки последовательно сохраняются в файл и последующие настройки затирают предыдущие. В итоге оказывается, что в файле сохранилось состояние только того грида, настройки которого сохранялись последними.
Имена под которыми сохраняются настройки в файле естественно разные.
Вот фрагменты кода для загрузки и сохранения состояния двух гридов на форме.

Код: vbnet
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.
Private Sub Form_Load()
        sFileName = App.Path & "\ConfigGrig.cfg"
               
        'Для DataGrid'а - 1
        With dgData1
            .LayoutFileName = sFileName                  'Установка имени файла для сохранения настроек
            .LayoutName = Me.Name & "Первый"       'Установка имени секции данных в файле настроек
            .LoadLayout                                        'Загрузка сохраненного состояния
        End With
        
        'Для DataGrid'а - 2
        With dgData2
            .LayoutFileName = sFileName                 'Установка имени файла для сохранения настроек
            .LayoutName = Me.Name & "Второй"       'Установка имени секции данных в файле настроек
            .LoadLayout                                       'Загрузка сохраненного состояния
        End With
End Sub

Private Sub Form_Unload(Cancel As Integer)
        
        'Сохранение установок таблиц гридов
        dgData1.Layouts.Add Me.Name & "Первый"
        dgData2.Layouts.Add Me.Name & "Второй"
              
End Sub


А теперь собственно вопросы. Встречались ли подобные глюки другим участникам и может кто нибудь знает как это лечится? Можно конечно записывать в разные файлы, но это не то!
И есть ли подобный глюк в других версиях грида?
...
Рейтинг: 0 / 0
20.09.2012, 20:06
    #37966368
GermanU
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение состояния двух TDBGrid на форме. Глюк?
Неужели ни у кого подобного глюка не было. Странно мне казалось TDBGrid контрол достаточно распространенный.
...
Рейтинг: 0 / 0
23.09.2012, 15:17
    #37968752
GermanU
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сохранение состояния двух TDBGrid на форме. Глюк?
Методом проб и ошибок нашел решение для обхода глюков.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
'Сохранение установок таблиц гридов
'DataGrid1
dgData1.LayoutFileName = App.Path & "\" & SAVE_SETTING_FILE
dgData1.Layouts.Add Me.Name & "Первый"
dgData1.LayoutFileName = vbNullString
dgData1.LayoutName = vbNullString
'DataGrid2
dgData2.LayoutFileName = vbNullString
dgData2.LayoutName = vbNullString
dgData2.LayoutFileName = App.Path & "\" & SAVE_SETTING_FILE
dgData2.Layouts.Add Me.Name & "Второй"
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Сохранение состояния двух TDBGrid на форме. Глюк? / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]