powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как загнать в ComboBox записи поля таблицы?
7 сообщений из 7, страница 1 из 1
Как загнать в ComboBox записи поля таблицы?
    #32162475
BMP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMP
Гость
Не разберусь никак с ComboBox.
1. Как сделать так чтобы его нельзя было редактировать?
this.ReadOnly= .T. - приводит к тому же что и Enabled=.F. , т.е. недоступен для редактирования, но и недоступен для выбора итемсов??? Может я что-то упустил или это глюки?
2. Как загнать в ComboBox записи поля(fieldname) таблицы(tbname)?

Заранее благодарен.
...
Рейтинг: 0 / 0
Как загнать в ComboBox записи поля таблицы?
    #32162488
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> this.ReadOnly= .T. - приводит к тому же что и Enabled=.F. , т.е. недоступен для редактирования, но и недоступен для выбора итемсов

Все правильно, таким образом нельзя изменить combobox.Value. Похоже, что тебуется combobox.Style=2

Код: plaintext
1.
2.
3.
 0     Drop-down combo box, including a list and an edit box.
The user can select from the list or type characters in the edit box.
 2     Drop-down list.
The user must select from the list.


> 2. Как загнать в ComboBox записи поля(fieldname) таблицы(tbname)?

Например:
.RowSourceType=6 && Fields
.RowSource="tbname.fieldname"
См. подробности в хелпе по поводу RowSourceType, может потребуются другие возможности (Alias или SQL Statement).
...
Рейтинг: 0 / 0
Как загнать в ComboBox записи поля таблицы?
    #32162494
BMP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMP
Гость
Спасибо NNN. А я уже начал обходными путями

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
LOCAL ARRAY ComboxArr[ 1 ]
SET LIBRARY TO ALEN
ComboxArrElemCount =ALENSUB1(@ComboxArr)
*ComboxArrElemCount = _ALen(ComboxArr)
elcounter= 1 
DO WHILE elcounter<=ComboxArrElemCount   
 this.AddItem(ComboxArr[elcounter, 1 ])
 elcounter=elcounter+ 1 
ENDDO


Но не получается с API-шной _ALen(ComboxArr) - Фокс говорит, что не может обнаружить alen.fll. Как работать с API в Фоксе или это просто у меня не хватает каких-то файлов?

P.S. Поздравляю с 1111 сообщением :).
...
Рейтинг: 0 / 0
Как загнать в ComboBox записи поля таблицы?
    #32162503
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Но не получается с API-шной _ALen(ComboxArr) - Фокс говорит, что не может обнаружить alen.fll. Как работать с API в Фоксе или это просто у меня не хватает каких-то файлов?

C API в фоксе работать очень просто, запускется Visual C++ (наверное можно и другой C/C++, но у меня на других не получалось ничего скомпилировать) и пишется dynamic-link library, которая потом переименовывается в fll, и подключается к фоксу через SET LIBRARY TO.. Что и как расписано в хелпе "Accessing the Visual FoxPro API"
_aLen() выполняет тоже самое, что и ALEN() в самом фоксе, поэтому смысла использовать API в данном случае не вижу.

> P.S. Поздравляю с 1111 сообщением :).

Спасибо :)
...
Рейтинг: 0 / 0
Как загнать в ComboBox записи поля таблицы?
    #32162513
BMP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMP
Гость
Да уж. Элементарно...
Это что получается: нужно создать ДЛЛ, в которой должна быть функция в которой должны быть параметры как у АПИ-шной функции и ее вызов с этими параметрами. Странно что Фокс самостоятельно не работает с АПИ. Но зато удобно подключать свои ДЛЛ из С.

Спасибо.
...
Рейтинг: 0 / 0
Как загнать в ComboBox записи поля таблицы?
    #32162524
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Это что получается: нужно создать ДЛЛ, в которой должна быть функция в которой должны быть параметры как у АПИ-шной функции и ее вызов с этими параметрами.

Обычно функции FoxPro API имеют аналоги среди родных фоксовских или не имеют смысла в самом фоксе (например работа с указателями на переменные). Поэтому они предназначены для создания новых пользовательских функций, которые после подключения библиотеки, можно использовать в фоксе как родные.
...
Рейтинг: 0 / 0
Как загнать в ComboBox записи поля таблицы?
    #32162894
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
API-функции объявляются несколько по другому. Посмотри описание команды

DECLARE-DLL

Правда, там будет масса мороки, поскольку описанные таким образом библиотеки не работают со структурой. Придется передавать и принимать символьную строку, которую уже ручками разбирать на части. Очень утомительно :(

Команда SET Lybrary используется только для собственных библиотек классов VFP (файлы VCX) и FLL-библиотек.

Кстати, при настройке Combo.Style=0, настройка ReadOnly=.T. конечно блокирует правку текстовой строки, но тем не менее возможность выбора по нажатию кнопки со стрелкой справа от Combo остается. Иногда нужен и такой стиль.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как загнать в ComboBox записи поля таблицы?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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