Как создать "умный" Control?
- banderlog
- user
- Сообщения: 71
- Зарегистрирован: 23 апр 2008, 20:44
- Версия LabVIEW: 8.5
- Контактная информация:
Как создать "умный" Control?
Необходимо создать свой контрол. Сосоит, к примеру, из выпадающего списка и нескольких числовых и строчных элементов управления.
Как сделать, чтобы при выборе значения в выпадающем списке поля автоматически заполнялись значениями по умолчанию?
Можно ли сделать так, чтобы можно было создавать новые записи в этой микробазе данных?
Поковырял typedef, получается сделать только пользовательский элемент управления. "Начинку" - никак.
Можно ли обойтись без баз данных? Очень уж не хочется городить огород ради 10-20 записей.
Как сделать, чтобы при выборе значения в выпадающем списке поля автоматически заполнялись значениями по умолчанию?
Можно ли сделать так, чтобы можно было создавать новые записи в этой микробазе данных?
Поковырял typedef, получается сделать только пользовательский элемент управления. "Начинку" - никак.
Можно ли обойтись без баз данных? Очень уж не хочется городить огород ради 10-20 записей.
-
- VIP
- Сообщения: 1327
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 37 раз
- Контактная информация:
Re: Как создать "умный" Control?
Можно конечно XControl измыслить, но там придётся изрядно повозиться (если с непривычки).
-
Chupakabra
- professional
- Сообщения: 360
- Зарегистрирован: 21 янв 2009, 10:50
- Награды: 1
- Версия LabVIEW: 2015
- Откуда: Москва
- Поблагодарили: 4 раза
- Контактная информация:
Re: Как создать "умный" Control?
Боюсь, что здесь одним XControl-ом не обойтись, если требуется сохранять изменения значений в полях.AndreyDmitriev писал(а):Можно конечно XControl измыслить, но там придётся изрядно повозиться (если с непривычки).
Без внешней "базы" в том или ином виде не обойтись, простые варианты либо ini-файл, либо xml.
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Как создать "умный" Control?
Xcontrol может сохранять данные (не обязательно совпадающие с тем, что отображается) в теле VI, в которую он вставленChupakabra писал(а):Без внешней "базы" в том или ином виде не обойтись, простые варианты либо ini-файл, либо xml.
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
-
Chupakabra
- professional
- Сообщения: 360
- Зарегистрирован: 21 янв 2009, 10:50
- Награды: 1
- Версия LabVIEW: 2015
- Откуда: Москва
- Поблагодарили: 4 раза
- Контактная информация:
Re: Как создать "умный" Control?
Можно подробнее про "может сохранять данные (не обязательно совпадающие с тем, что отображается) в теле VI, в которую он вставлен". На примере.mzu2006 писал(а):Xcontrol может сохранять данные (не обязательно совпадающие с тем, что отображается) в теле VI, в которую он вставленChupakabra писал(а):Без внешней "базы" в том или ином виде не обойтись, простые варианты либо ini-файл, либо xml.
-
Chupakabra
- professional
- Сообщения: 360
- Зарегистрирован: 21 янв 2009, 10:50
- Награды: 1
- Версия LabVIEW: 2015
- Откуда: Москва
- Поблагодарили: 4 раза
- Контактная информация:
Re: Как создать "умный" Control?
Кстати, удалось провернуть такую штуку:
Если создать VI, в который добавить, например, один контрол. И из другого VI писать (ну и читать тоже) в первый VI некие данные в режиме редактирования(!) и затем выполнятья для первого VI методы Default.Val.Make Curr Default и Save Instrument, то действительно можно хранить данные прямо в VI, даже после завершения программы.
Если создать VI, в который добавить, например, один контрол. И из другого VI писать (ну и читать тоже) в первый VI некие данные в режиме редактирования(!) и затем выполнятья для первого VI методы Default.Val.Make Curr Default и Save Instrument, то действительно можно хранить данные прямо в VI, даже после завершения программы.
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Как создать "умный" Control?
XControl имеет 2 связанных с ним типа данных State и Data. Data - это тип терминала. State - это тип внутренних данных XControl'а. Значение типа State хранится в VI, куда этот XControl вставлен. Я предлагал хранить мини базу данных в текущем State, отображая из неё только то, что нужно в данный конкретный момент.
Вышеприведённый пример, применённый к XControl'у сохранит его State.
Вышеприведённый пример, применённый к XControl'у сохранит его State.
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
-
- VIP
- Сообщения: 1327
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 37 раз
- Контактная информация:
Re: Как создать "умный" Control?
Вопрос на засыпку: как будет работать эта конструкция в исполняемом exe файле?Chupakabra писал(а):... в режиме редактирования(!) и затем выполнятья для первого VI методы Default.Val.Make Curr Default и Save Instrument, то действительно можно хранить данные прямо в VI, даже после завершения программы.
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Как создать "умный" Control?
никак. Во время работы можно VI использовать State даже для тех полей, которые скрыты в данный момент.AndreyDmitriev писал(а):Как будет работать эта конструкция в исполняемом exe файле?
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
- banderlog
- user
- Сообщения: 71
- Зарегистрирован: 23 апр 2008, 20:44
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Как создать "умный" Control?
Так и не понял, как это должно делаться в исполняемом ви. Можно это показать как-нибудь на примере простейшего проекта, типа, как во вложении?mzu2006 писал:
Xcontrol может сохранять данные (не обязательно совпадающие с тем, что отображается) в теле VI, в которую он вставлен
- Вложения
-
- XCntlTry.zip
- (212.64 КБ) 179 скачиваний
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Как создать "умный" Control?
Пожалуй чуть более корректно будет сказать не "сохранять", а "хранить". Я имел в виду, что XControl может хранить (data, обведённое сиреневым) гораздо больше, чем отображать (Display State, обведённое зелёным). Например, Data может содержать в себе всю базу данных, а Display - отображение текущего элемента и индекс.
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
- banderlog
- user
- Сообщения: 71
- Зарегистрирован: 23 апр 2008, 20:44
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Как создать "умный" Control?
Т.е., для мини-базы данных надо делать именно базу данных (ну, или на хмл изобретать что-нибудь), а сам экзешник уже никак нельзя "на лету" изменять?mzu2006 писал(а):Пожалуй чуть более корректно будет сказать не "сохранять", а "хранить". Я имел в виду, что XControl может хранить (data, обведённое сиреневым) гораздо больше, чем отображать (Display State, обведённое зелёным). Например, Data может содержать в себе всю базу данных, а Display - отображение текущего элемента и индекс.
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Как создать "умный" Control?
Перечитал топик. Похоже из-за моей некорректной формулировки ("сохранять" <-> "хранить") сложилось впечатление, что XControl может сохранять что-то внутрь исполняемого файла стандартными средствами. Сожалею. Нет, мне такие средства неизвестны.
Однако хранить 1 раз считанную базу данных на время существования этого XControl'а он может. Т.е. БД можно считать 1 раз при старте, хоть из простого бинарного файла.
Однако хранить 1 раз считанную базу данных на время существования этого XControl'а он может. Т.е. БД можно считать 1 раз при старте, хоть из простого бинарного файла.
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
- banderlog
- user
- Сообщения: 71
- Зарегистрирован: 23 апр 2008, 20:44
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Как создать "умный" Control?
В любом случае, спасибо за развёрнутые ответы!
Буду пробовать привязывать ини- или хмл-файлы.
Главное, начать работать с такими вещами, а то у меня получается раз в полгода посидеть пару дней, сделать чуть, и забросить до следующего раза. А так только самые примитивные структуры и приёмы остаются в голове.
Буду пробовать привязывать ини- или хмл-файлы.
Главное, начать работать с такими вещами, а то у меня получается раз в полгода посидеть пару дней, сделать чуть, и забросить до следующего раза. А так только самые примитивные структуры и приёмы остаются в голове.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение