OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 26 Апрель, 2024 21:21

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Работа с массивом посредством Meta
СообщениеДобавлено: Четверг, 07 Август, 2008 13:44 

Зарегистрирован: Вторник, 17 Июнь, 2008 12:13
Сообщения: 28
Здравствуйте! Динамически загружаю модуль с именем "МодульА". Знаю, что в "МодульА" есть массив строк "Строки" неизвестной длины. Требуется определить длину массива "Строки" и считать значения его элементов. По крайней мере, ясно, что нужно работать через Meta. До массива "Строки" вроде бы добраться получается, по крайней мере получается определить его длину. Но как теперь считать значения его элементов? Как присвоить новые значения?

Код:
                         .............
         Meta.Lookup("МодульА", item);
         IF item.obj = Meta.modObj THEN
            item.Lookup("Строки", item);
            IF item.obj = Meta.varObj THEN
               n := item.Len();(*а вот и длина массива*)
                         .............
(*Как теперь прочитать элементы массива???*)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 07 Август, 2008 13:56 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Код:
         Meta.Lookup("МодульА", item);
         IF item.obj = Meta.modObj THEN
            item.Lookup("Строки", item);
            IF (item.obj = Meta.varObj)
              & (item.typ = Meta.arrTyp)
              & (item.BaseTyp() = Meta.arrTyp) THEN
               n := item.Len();(*а вот и длина массива*)
               item.Index(0, elem); (* получили elem: Item для 0-й строки массива строк *)
              IF elem.BaseTyp() = Meta.charTyp THEN
                     elem.GetStringVal(string, ok)
                     или
                     elem.PutStringVal(string, ok)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 07 Август, 2008 16:05 

Зарегистрирован: Вторник, 17 Июнь, 2008 12:13
Сообщения: 28
Спасибо, работает! Должен признаться, что перед отправкой вопроса чувствовал себя дураком, потому что не смог с ходу разобраться в этой "простой" проблеме. А теперь чувствую себя немного обманутым, ибо даже имея на руках работающий код и описание модуля Meta вижу, что разбирался бы и разбирался... Далеко не все очевидно. И еще большой вопрос, хватило бы терпения и талантов??? Да, без хорошего пособия по ББ эргономичность среды неважная. Но и "плохое" пособие было бы очень кстати. Лучше хоть что-то, чем совсем ничего... Ведь наверняка у кого-нибудь есть, пусть и в очень "сыром" виде? А до "совершенства" можно будет довести со временем... Но это так, плачь Ярославны по беспутно прожитым годам. :D


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 10 Август, 2008 23:52 

Зарегистрирован: Вторник, 17 Июнь, 2008 12:13
Сообщения: 28
Сначала даже создал новую тему для вопроса, но понял, что перегнул палку. Пускай здесь будет. А вопрос вот какой. Дело в том, что где-то видел ругательства (вроде "глюкавый" и т.п.) по поводу тулбара (Toolbar) By Juan Antonio Ortega, с сайта http://www.zinnamturm.eu/ В чем, если не секрет, суть претензий? Может, где-то есть другая реализация? Удивительно, но мне действительно нужен тулбар.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 11 Август, 2008 15:14 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Последняя его версия на Windows-2000 не показывается. Только на XP-Vista. Под Wine-Linux тоже не показывается.

Плюс наблюдались трэпы в сочетании с некоторыми другими хитрыми отображениями (что-то он на себя хучит через WinApi).

Если хотите использовать для себя - думаю, никаких проблем не будет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 11 Август, 2008 15:40 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Илья Ермаков писал(а):
Под Wine-Linux тоже не показывается.
Наверное, зависит от верси эмулятора и версии панели. В некоторых случаех помогает такое: запустить ББ, свернуть окно на панель задач, развернуть окно : ).


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB