Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Нет! [Test[5]] в итоге выдаст имя переменной, сложенное из СЛОВА Test и СОДЕРЖИМОГО переменной [5], т.к. скобки обозначают обращение к содержимому, а не имени. И если в переменной под именем "5" что-то содержится (скажем "пиво"), то итоговое имя переменной [Test[5]] будет [Testпиво].
Quote (Alex3A)
Что значит точка в конструкции
Эта "конструкция" создана на основе переменных плагина, а сам необушныё интерпретатор таких конструкций не употребляет. В плагинах часто применяются переменные на основе "записей", например, для описания переменных какого-либо объекта плагина (обычно за "основу" берется имя объекта, просто чтобы было понятнее и удобнее). Сам же необушные интерпретатор "конструкций с точкой" (как компилятор Delphi) не понимает и не "употребляет". Поэтому конструкция типа [Test.Pivo] для интерпретатора будет "звучать" точно также как и пишется, т.е интерпретатор не полезет искать поле "Pivo" в структуре "Test", а тупо обратится к переменной под именем [Test.Pivo]. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Работаю с БД, действительно есть такая досада, что "многослойные" переменые вида [[ПеРеМ1].[ПеРеМ2].пЕрЕм3] не работают в НБ на вывод этой переменной например в обекте Text или TextEntry.
Вот и я вчера "попал" на такую "досаду". Хорошо, сегодня нашел эту тему 1. В проекте присутствуют переменные типа: [Db.[OpenSl].N], причем в списке переменных проекта они отображаются в виде: [Db..N] 2. В отладчике все нормально, а в объект Text значения таких переменных не выводятся...
Quote (DEMBEL)
пока вижу этот единственный выход
Наиболее оптимальный выход: "SetVar "[Text]" "[Var[x]]"" ? Кто как обходит это "ограничение"?
если я правильно понял, то чтоб из значения сделать ссылку на переменную надо еще раз заключить в скобки пример: SetVar "[test]" "555" SetVar "[Text]" "test" вывод в объект: [[Text]]
Сообщение отредактировано Сергей - Пн, 11 Апреля 2011, 00:40
переменные типа: [Db.[OpenSl].N], причем в списке переменных проекта они отображаются в виде: [Db..N]
Quote (Necronomicon)
2. В отладчике все нормально, а в объект Text значения таких переменных не выводятся...
Necronomicon, пока не очень понятно, что именно вы хотите сделать.
В общем случае, если переменная описана как [Db.[OpenSl].N], то её ИМЯ будет состоять реально из: сначала "Db.", потом СОДЕРЖИМОЕ переменной [OpenSl], а потом ".N" Иными словами, если в переменной [OpenSl] содержится, скажем, "Вася", то ИМЯ (а не содержимое) составной переменной будет таким: [Ob.Вася.N]...
Судя по скриншоту, у вас все работает правильно. Какая переменная назначена объекту "Text"?
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Там загвоздка с переменными в плагине базы данных в про версии. Когда база создается, то переменная получается именно такого вида [Имя базы данных.Таблица.Поле]. Похоже он хочет менять имя таблицы на "лету" при помощи переменной. [Имя базы данных.[Таблица].Поле]. Но плагин такого не поддерживает (по моему, точно не помню) Помню тоже сталкивался с такой проблемой. Мы еще с тобой и с алексом это обсуждали. А вот какое решение было, не помню. По моему я бросил эту затею. Добавлено (11 Апрель 2011, 01:54) --------------------------------------------- О блин, сейчас начал эту тему просматривать, в ней как раз и обсуждали. Щас почитаю, мож вспомню.
Точно. Я забросил эту затею. Для меня она оказалась не решаемой. Но сейчас посидел себя помучил, есть определенные решения. 1. Нужно ббъявить переменную [OpenSl] глобальной. В объекте Text поменять переменную к примеру на [Text]. В команде dbpSetGridProperties на дубльклик повесить подпрограмму. В которой прописать SetVar "[Text]" "[Db.[OpenSl].N]". Но это будет срабатывать только при двойном щелчке. 2. Воспользоваться плагином Петра.
Necronomicon, пока не очень понятно, что именно вы хотите сделать.
Я, наверное, не очень ясно изложил суть вопроса, образно процитировав постDEMBEL про SetVar "[Text]" "[Var[x]] Собственно, варианты уже были выше: использовать с объектами Text и TextEntry команды SetVar и RefreshObject. Просто подумал: год прошел с момента обсуждения, тема не закрыта, может появились др. "способы". Используя команду SetVar "нельзя" редактировать из TextEntry поля в таблице. Команда RefreshObject не работает с объектом TextEntry.
Quote (Necronomicon)
переменные типа: [Db.[OpenSl].N], причем в списке переменных проекта они отображаются в виде: [Db..N]
Quote (mishem)
Воспользоваться плагином Петра.
Можно подробнее, что ты имеешь ввиду? Прикрепил демку.
Я имел ввиду если отображается таблица и по ней происходит навигация. А для редактирования по моему если щелкнуть добавить, то данные изменятся.(но не утверждаю). Голова сейчас не работает.
Добавлено (11 Апрель 2011, 20:00) --------------------------------------------- Necronomicon, вставь код
Добавлено (05 Февраля 2013, 08:05) ---------------------------------------------
Цитата (Сергей)
mishem, сабж то решил?
Цитата (Сергей)
А на главный вопрос ответ нет, Нб почемуто не понимает такую переменную, что очень жаль
Не прошло и года.
Опять вернулся к этому вопросу, вернее столкнулся.... И похоже нашел все таки решение.
Для того, что бы все отображалось в поле объекта Текст, нужно создать дополнительную Виртуальную таблицу! Например dbpCreateView"ID" "[Имя таблицы]" "Virtual" И ее же открывать для просмотра. dbpShowGrid "ID" "Virtual" "Rectangle"
Теперь при навигации мы будем получать в переменные виртуальной таблицы все те же значения что и в оригинальной. Вставляем переменные виртуальной таблицы в то место куда нам надо и все ОК.
До редактирования таблицы пока еще не дошел и по этому ничего сказать не могу. Но надеюсь что тоже будет все хорошо.
Добавлено (15 Февраля 2013, 16:17) --------------------------------------------- Пока плагин жду, отпишусь. Редактируется тоже все прекрасно. После редактирования выполняю команду dbpRefresh. Не помню проблема какая была или так надо. Если нам нужно что бы отображалась другая таблица, просто закрываем и удаляем созданную виртуальную и снова ее создаем присваивая имя таблицы с которой нам нужно работать. После удаления виртуальной таблицы данные оригинальной не затрагиваются. Ну об этом можно в справке прочитать.