Подмена путей к данным

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
SSTA
Бывалый
Сообщения: 52
Зарегистрирован: 03 Февраль 2006, 5:41
Откуда: Хабаровск

Подмена путей к данным

Сообщение SSTA »

Здравствуйте.
CW 6.1 ABC TPS
Имеется обычный Browse. Необходимо вызвать другой, полностью аналогичный Browse, но по данным из другого места. Для этого: вызываю текстовую программку, которая закрывает все файлы, переустанавливает пути и по новой их открывает (открытие/закрытие средствами source-темплейта). Проблема: новые пути не хотят устанавливаться. Как объехать?
C уважением, Александр Т.
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Re: Подмена путей к данным

Сообщение Yufil »

SSTA писал(а):Здравствуйте.
CW 6.1 ABC TPS
Имеется обычный Browse. Необходимо вызвать другой, полностью аналогичный Browse, но по данным из другого места. Для этого: вызываю текстовую программку, которая закрывает все файлы, переустанавливает пути и по новой их открывает (открытие/закрытие средствами source-темплейта). Проблема: новые пути не хотят устанавливаться. Как объехать?
Скорее всего, никак... Дело в том, что закрытие файла средствами ABC только уменьшает счётчик открытий. И только если он равен 0, произойдёт реальное закрытие. Попробуй создать алиас основного файла и сделай второй Browse по алиасу.
Аватара пользователя
StillZero
Ветеран
Сообщения: 458
Зарегистрирован: 06 Июль 2005, 2:17
Откуда: Хабаровск
Поблагодарили: 1 раз
Контактная информация:

Сообщение StillZero »

Скорее всего, никак
не согласен
в C6.х это как раз на раз два
в методе Init WindowManager-а, перед открытием файлов (OpenFiles)пишем
MyFile{Prop:Name} = 'мой путь' и все
единственно, что при файл MyFile должен быть объявлен с атрибутом THREAD и запускаться эти браузы должны в разных потоках.
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Сообщение Yufil »

StillZero писал(а):
Скорее всего, никак
не согласен
в C6.х это как раз на раз два
в методе Init WindowManager-а, перед открытием файлов (OpenFiles)пишем
MyFile{Prop:Name} = 'мой путь' и все
единственно, что при файл MyFile должен быть объявлен с атрибутом THREAD и запускаться эти браузы должны в разных потоках.
Так здесь вроде речь идёт об одном потоке... Если в разных потоках, то всё совершенно элементарно - вводи переменное имя файла и устанавливай перед открытием...
SSTA
Бывалый
Сообщения: 52
Зарегистрирован: 03 Февраль 2006, 5:41
Откуда: Хабаровск

Сообщение SSTA »

Интересно, а такой метод корректный?:
loop
Access:MyFile.Close
if errorcode() then break.
.
......
Переустановка имен
......
Access:MyFile.Open
Access:MyFile.UseFile

Сделал, вроде работает....
C уважением, Александр Т.
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Сообщение Yufil »

Интересно, а такой метод корректный?:
loop
Access:MyFile.Close
if errorcode() then break.
.

Надо If Access:MyFile.Close() Then Break.

......
Переустановка имен
......
Access:MyFile.Open
Access:MyFile.UseFile

А потом ABC-классы будут ругаться на неоткрытый файл или на непредусмотренное закрытие. Всё-таки с алиасом покорректнее
Ответить