Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблемы со списком файлов в listbox/combo / 11 сообщений из 11, страница 1 из 1
25.05.2005, 22:55:02
    #33084240
Whitish Smoke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы со списком файлов в listbox/combo
У меня такая задача: вывести список доступных dbf (внутри каталога) в listbox. Прописывание RowSourceType=7 не годится.

Сделал так. Есть функция ADIR() которая кладёт инфу по файлам в массив, допустим в list_files

Затем:

RowSourceType=6
RowSource='list_files'

Проблема в том, что в массив эти файлы заносятся исправно, а в листбоксе их не видно. Хотя мышкой можно навести и покликать по пустым полям.

Что не так? (VFP5/6)
...
Рейтинг: 0 / 0
26.05.2005, 00:09:28
    #33084273
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы со списком файлов в listbox/combo
RowSourceType=5
должно быть.
Ты ж в массив adir'ом помещаешь - вот и бери оттуда.

И о видимости массива не забывай. Сделай массив, например, свойством формы.
...
Рейтинг: 0 / 0
26.05.2005, 04:55:26
    #33084323
Whitish Smoke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы со списком файлов в listbox/combo
Ой, сглупил. Действительно 5! А массив как свойство формы это Form -> new property ?
...
Рейтинг: 0 / 0
26.05.2005, 08:04:07
    #33084360
Urri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы со списком файлов в listbox/combo
Да
...
Рейтинг: 0 / 0
26.05.2005, 10:23:06
    #33084563
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы со списком файлов в listbox/combo
...
Рейтинг: 0 / 0
26.05.2005, 17:55:13
    #33085968
Whitish Smoke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы со списком файлов в listbox/combo
Спасибо за советы.

Насчёт RowSourceType=6 это я здесь опечатался на самом деле. В коде стоит правильно, то есть 5.

авторЭто значит, что созданный в методе формы или одного из ее объектов массив будет автоматически уничтожен по завершении того метода, в котором этот массив был создан.

Решение

Есть два принципиальных способа решения

Установить область видимости массива PUBLIC

Создать дополнительное свойство (Property) типа массив


По ряду причин, назначение локальному объекту области видимости PUBLIC - это не очень хорошая идея. В данном случае, под "локальным объектом" подразумевается массив, поскольку он нужен "локально", в пределах одной формы.

И всё таки хочется добить эту тему до конца.

Во-первых. Почему это не очень хорошая идея, назначить этому массиву PUBLIC ?

Во-вторых. Раз массив нужен в пределах одной формы, то почему он уничтожается в пределах ОДНОГО из методов ЭТОЙ формы?

Этому явно есть причина. Но в чём она заключается?
...
Рейтинг: 0 / 0
26.05.2005, 21:02:22
    #33086291
Burn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы со списком файлов в listbox/combo
>Почему это не очень хорошая идея, назначить этому массиву PUBLIC ?
Ну не точто не хорошая идея, но использование глобальных переменых создаваемых в произвольном месте сильно запутывает последующее понимание кода. Да и убивать их желательно не забывать а это лишнее телодвижение.

>Раз массив нужен в пределах одной формы, то почему он уничтожается в пределах ОДНОГО из методов ЭТОЙ формы?
Этому явно есть причина. Но в чём она заключается?

Во первых нарушение принципов ООП - методы класса взаимодействуют только через свойства класса. Хочешь чтото передать в другой метод - только через свойство.
Ну и любая переменая, создаваемая в методе (а это процедура) по умолчания имеет тип PRIVATE а значит видна только в процедурах, вызваных из этого метода а другие классы таковыми не являются, если их специально не вызывать
...
Рейтинг: 0 / 0
26.05.2005, 22:57:43
    #33086339
Whitish Smoke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы со списком файлов в listbox/combo
2 Burn. О! Спасибо. Хорошие ответы. Кое-что у меня в голове прояснилось.
...
Рейтинг: 0 / 0
26.05.2005, 23:43:12
    #33086360
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы со списком файлов в listbox/combo
Whitish Smoke2 Burn. О! Спасибо. Хорошие ответы. Кое-что у меня в голове прояснилось.
Если бы прочитал по ссылке, то прояснилось бы несколько раньше. Не пришлось бы ждать почти пол-дня. Там написано примерно то же самое, но более подробно.
...
Рейтинг: 0 / 0
26.05.2005, 23:46:42
    #33086364
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы со списком файлов в listbox/combo
Хм... Похоже все-таки читал. Извиняюсь. Только как-то странно ты читал. По сути, Burn просто повторил все то, что там и было сказано. Ну, разве что там не объяснено почему использование PUBLIC-переменных плохо.
...
Рейтинг: 0 / 0
26.05.2005, 23:58:34
    #33086371
Whitish Smoke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблемы со списком файлов в listbox/combo
Иногда то же самое, но чуть другими словами сдвигает ситуацию с мёртвой точки :)
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблемы со списком файлов в listbox/combo / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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