![]() |
|
Модераторы: Akina |
![]()
|
|
| Aleksandr |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 4.12.2003 Репутация: нет Всего: нет |
Собственно, сабж, господа. Проблема в том, что когда я считываю данные из файла в дочернюю форму (идет обращение к frmName.ActiveForm.MSFlexGrid, то есть к активному дочернему окну), то когда ее нет (дочерней формы) у меня выдается ошибка, что не к чему, мол, обращаться.
|
|||
|
||||
| Aleksandr |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 4.12.2003 Репутация: нет Всего: нет |
С тем разобрался, но появилась другая проблема.
Теперь вот надо узнать номер открытой формы или имя... Как? Суть в чем: хочу сохранить данные из MSFlexGrid в файл. Как я все это организовываю: '======Объявляю свой тип переменных==== Private Type CyberyaTable CellText As String 'содержимое ячейки CellAlignment As Integer 'хранит значение выравнивания текста в ячейке (по левому краю, по центру, по правому краю) CellFontName As String 'содержит имя шрифта, который будет использоваться в ячейке CellFontType(1 To 4) As Boolean 'массив, содержащий информацию о типе шрифта (жирный, наклонный и т.д.) CellFontSize As Integer 'хранит в себе размер шрифта CellCeWidth As Integer 'хранит ширину ячеек CellCeHeight As Integer 'хранит высоту ячеек End Type '======Объявляю переменные и массивы======== Private cTable(1 To 255, 1 To 24) As CyberyaTable 'Массив, содержащий в себе информацию о каждой ячейке в таблице Private cTableVar As CyberyaTable 'Временная переменная для внесения информации в ячейку Private cTableTemp As CyberyaTable 'Временная переменная для считывания информации из ячейки '======Конец объявления переменных======= '======Вот идет сохранение======= 'Процедура сохранения таблицы в файл Sub TableSave() 'идет проверка на совпадение имен сохраняемого файла с существующими, если таковые есть If Len(frmTableEditMDI.strPathTemp) = 0 Then frmSaveAs.Show 1, frmTableEditMDI Else If frmTableEdit.flagOfKolvoZapuskov = True Then Open "temp.tmp" For Binary As #2 'Создаем временный файл '=====Вот здесь у меня затык происходит, но о нем ниже===== Put #2, , cTable '=====Вот здесь у меня затык происходит===== If frmSaveAs.flagOfExictingFile = False Then Kill frmTableEditMDI.strPathTemp 'удаляем его End If Close #2 'закрываем временный файл Name "temp.tmp" As frmTableEditMDI.strPathTemp 'переименовываем временный файл в редактируемый End If End If End Sub В общем, в чем заключается проблема. Проблема в том, что при перемещении по таблице я всегда считываю данные о ячейке в переменную моего типа, а потом эту перменную вношу в массив, опять же моего типа с индексами row и col, т.е.: cTable(frmTableEditMDI.ActiveForm.fxgTable.Row, frmTableEditMDI.ActiveForm.fxgTable.Col) Все пока идет ок. В каждой дочерней форме есть свой массив пользовательского типа и из него данные нормально считываются и заносятся. НО! При сохранении, данные записываются в файл из массива, принадлежащего самой первой форме, а не активной. Нужно, чтобы данные хотя бы записыались во временный массив, но объявить его Public я не могу, поскольку он пользоавтельского типа. Что делать? |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |