Перейти к содержанию
Fire Monkey от А до Я

Марк

Пользователи
  • Постов

    10
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Марк

  1. Не понятная ошибка при компиляции проекта,  в режиме дебагера под андроид -[DCC Error] E2597 D:\Developments\ForAndroidTab\Sourse/Configurator.pas:322: error: undefined reference to 'Applmain::MainForm'

    Ошибка начала появляться вдруг после очередной коррекции программы. До этого такого не было и все компилировалось сразу без перестройки проекта.

    По названию уже понятно что MainForm это главная форма из которой вызываются все остальные модули. В модуле Configurator естественно есть указание на эту форму в uses.

    Если сделать Build, то после этого все компилируется отлично и программа запускается на андроид планшете.

    Но достаточно изменить хотя бы один символ в любом модуле проекта ошибка повторяется и необходимо опять запускать Build.

    Может кто -то знает как с этим бороться, не переставляя всю среду. То что нашел по такой ошибке это совет проверить что стоит конфигурация Андроид в опциях библиотек. Проверил - стоит.

    Пользуюсь версией Berlin 10.1. SDK 25.2.5

  2. Еще раз спасибо за помощь! Я воспользовался Вашим советом и создал массив( у меня несколько панелей с картинками) с элементами TBitmap(FImageStore :array of TObjectList<TBitmap>;)

    Затем для каждой панели я создаю объект TObjectList<TBitmap>.Create;

    А каждую исходную картинку я гружу так

     n:=FImageStore[PageZal.PageIndex].Add(TBitmap.Create);
              try
                FImageStore[PageZal.PageIndex].Items[n].Assign(Bitmap);
              finally
                ImgList.TagObject:=FImageStore[PageZal.PageIndex].Items[n];
              end;

    И когда нужно восстановить первоначальный вид то назначаю по клику на картинку через

    Pic:=(Sender as TImage);

    Pic.Bitmap.Assign(Pic.TagObect as TBitmap);

    И все вроде работает.

    Есть только еще один вопрос. При закрытии программы нужно ли освобождать этот массив объектов или нужно Освобождать Pic.TagObect ?

     

     

  3. Спасибо за оперативный ответ! Только не понятно зачем TagObject у глобального компонента сделан "слабой ссылкой", т.е. фактически локальной переменной. А вот под виндой все сделано правильно. Вот Вам и многоплатформенность. Я конечно и сделал глобальную переменную(массив) где храню исходные картинки по индексам соответствующим индексам картинок.

    Просто намного удобнее было использовать параметр конкретного компонента, тогда не надо делать индексный массив, а обращавшийся напрямую к параметру объекта. А стрим я храню вместо Bimap , т.к. при перегрузке картинки при использовании Assign, не перегружается картинка, если не очистить ее предварительно. Места как я понимаю занимают они одинаково.

  4. Версия XE 10.1 Berlin

    При переводе своего приложения работающего под ОС Windows на Андроид столкнулся со следующей проблемой.

    Я вывожу динамически ряд картинок на панель используя компонент TImage. Затем эти картинки могут быть отредактированы.

    Для восстановления первоначальной картинки использовал свойство объекта TagObject, куда загружал TMemoryStream, в который сохранял первоначальный объект TBitmap.

    Когда необходимо восстановить картинку, то из ее TagObject грузил в Image.Bitmap.

    Под ОС Windows все работало отлично. Но вот когда попітался то же сделать для Android ничего не вышло.

    Оказалось что попытка создать объект путем стандартной операции Image2.TagObject:=TMemoryStream.Create; ни к чему не приводит. Т.е. почему то TagObject остается равным NIL. TagObject можно присвоить только переменную потока после ее создания. Но  не скопировать ее значение в TagObject. Т.е. хранить не получается.

    Не могли бы подсказать в чем дело. Прилагаю тестовый исходник. В нем есть 2 картинки и 2 кнопки. По первой кнопке сохраняем 1 картинку в TagObject второй. По второй кнопке загружаем из TagObject в Bitmap первую картинку.

    При компиляции под виндой все ОК, под андроидом - ошибка.

     

    TestStream.rar

  5. 1. Действительно при задании такого формата показывает и время и дату.

    2. Но вот в чем проблема- Вопрос стоял как вывести "Picker" в котором можно выбрать и дату и время. А при использовании компонента TTimeEdit "Picker" не выводится, а есть возможность только увеличить или уменьшить выделенное значение.

    3. Таким образом вопрос остается открытым.

  6. Используем для редактирования даты и времени компонент TDateEdit. При нажатии на правую галочку выводится календарь, но в нем можно выбрать только дату.

    Насколько я понял из хелпа используется стандартный "Picker".  Там же написано, что он  может работать как в режиме отображения только даты, так и в режиме даты и времени.

    Каким образом можно задать этот режим. Или надо писать свой компонент, с выводом даты и времени?

  7. При настройке компонента MultiVie параметр SplitViewOptions может принимать значения Left/Right

    При этом панель будет в режиме Drawer  выезжать слева или справа. Что нужно предпринять чтобы эта панель выезжала снизу или сверху.

    Или этот компонент этого не может и надо писать свой на базе TCustomMultiView. Тогда подскажите как это сделать.

     

×
×
  • Создать...