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

Alex7wrt

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

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

  • Посещение

  • Победитель дней

    31

Весь контент Alex7wrt

  1. Возможно не подключены соответствующие модули. Приведите хотя бы несколько подчеркнутых слов, чтоб на них взглянуть
  2. видео не смотрел, но за принудительную отрисовку отвечают update, repaint, invalidate и refresh.
  3. Вконтакте тоже можно лайкать свои посты. Мне кажется, лайкает ли кто свои посты - это вопрос, скажем так, - на отношение к жизни ))
  4. library\lib\armeabiv7a\ отключать не надо! Отключить только одну строку, в которой libnative-activity.so (local name) и library\lib\armeabi\ (remote path)
  5. У меня он после этого ваще не буилдерится Интересно. На всяк случай спрошу: В Deployment точно library\lib\armeabi\ отключили? Там еще есть library\lib\armeabiv7a\. Важно не перепутать.
  6. У меня в XE7 такую ошибку пишет на девайсах с Android 4.0.3 Просто захожу в Deployment и снимаю галочку в строке, где libnative-activity.so (local name) и library\lib\armeabi\ (remote path) и все запускается Подробнее здесь http://docwiki.embarcadero.com/RADStudio/XE8/en/Running_Your_Android_Application_on_an_Android_Device Ищите строку Workaround for Android 4.0/Kindle Fire Message: "Application does not support this device"
  7. Спасибо за замечание! Я так понимаю, это из-за разных размеров областей. То есть, чтобы использовать этот метод с равномерным распределением нужно указывать не равную вероятность для каждого случая, а как соотношение размеров этих областей? Если я Вас правильно понял, то в целом для моих задач это не принципиально, но стоит иметь ввиду.
  8. Итого для 2-мерного случая получаем следующее: randomize; a:=random(2); b:=random(3)+1; x:=random(x2-x1+1)+x1; y:=random(ymax-ymin)+ymin; case b of 1: x:=random(x1-xmin)+xmin; 2: y:=a*(random(y1-ymin)+ymin)+(1-a)*(random(ymax-y2)+y2+1); 3: x:=random(xmax-x2)+x2+1; end;
  9. Большое спасибо! Наверное, это действительно лучший вариант, хоть и в двумерном случае придется вводить еще две случайных величины. Но это однозначно намного лучше деления области на 8 частей. P.S. За мат. пример отдельное спасибо!!! Одновременно и стыдно за себя, и вдохновляет больше работать мозгами. ))
  10. Спасибо, что откликнулись. Но Вы правильно написали, что это медленный вариант и использовать его не хочется. Так как размеры вырезаемой области могут составлять и 90% от исходной. Хотелось бы какой-нибудь способ, в котором процедура random использует что-то типа кусочного интервала.
  11. Есть прямоугольная область (x,y от нуля до некоторых значений), внутри которой еще одна прямоугольная область с известными координатами углов. Каким образом исключить ее из рассмотрения для того, чтобы с помощью генератора случайных чисел можно было относительно легко получить координаты произвольной точки? То есть пусть например в исходной области макс. x. равен xmax, а макс. y ymax. Тогда, если бы не было внутренней области, можно было просто написать x=random(xmax+1), y=random(ymax+1). Лобовым решением является простое разделение оставшейся от вырезания области на 8 частей, каждая из которых прямоугольная и в ней обычным рандомом находить точку. Для выбора одной из 8-ми областей тоже использовать рандом. Но вдруг есть более изящные и простые решения?
  12. Можно написать «на русском»
  13. Как вариант указывать размеры элементов в долях от размеров формы. Например, ширина кнопки - 30% от ширины формы, высота - 10% от высоты. То же самое с отступами между элементами
  14. В зависимости от того, что Вы имеете в виду: Чтобы элементы не пересекались из-за своих размеров, нужно регулировать их размеры в зависимости от разрешения экрана. Чтобы элементы не пересекались из-за своего расположения (если они создаются динамически), нужно каждый следующий помещать в свободную область. Когда-то делал программу на соударение произвольного числа шаров. В начале их нужно расположить таким образом, чтобы они не попадали друг на друга. Делал так: случайно генерировал координаты шара и если эта область занята, то генерировал снова, пока не попадем на пустое место. Тогда переходим к следующему.
  15. Появилась интересная мысль - а что если добавить смайлики в шрифт в качестве символов? Если это возможно, то все становится одним сплошным текстом. Только желательно чтобы размер смайликов можно было выбирать независимо от размера шрифта.
  16. Спасибо за совет. Об этом даже не думал. Возможно придется сделать так, но не хотелось бы. Просто уже есть определенная структура по взаимодействию объектов (родитель, потомок) и не хотелось бы ее нарушать.
  17. Прошу подсказки в поиске ошибки. Нужно изменить цвет фона динамически создаваемого объекта TText после создания элемента пишу: texts.OnApplyStyleLookup:=TextsApplyStyleLookup; В теле процедуры пишу: procedure TForm1.TextsApplyStyleLookup(Sender: TObject); begin ((Sender as TText).FindStyleResource('background') as TRectangle).Fill.Color:=TAlphaColors.White; end; Но эффекта нет. В чем может быть причина?
  18. Первое, что приходит в голову - это использовать компонент типа TGroupBox в качестве контейнера для компонент, хранящих сообщения. В качестве таких можно использовать TText. Во время ввода/редактирования текста можно использовать TEdit, в котором смайлы записываются своими символьными комбинациями "))" ":)" и т.д. Можно как ввести вручную (многие пользователи их знают), можно по нажатии на пинктограмму (тогда в тексте в текущей позиции курсора появится соответствующий пинктограмме набор символов). После нажатия на кнопку "отправить сообщение" в TGroupBox добавляется новый компонент TText с содержимым Edit-a. При этом в качестве дочернего элемента к нему создается TImage с загруженной в него пинктограммой соответствующей введенной комбинации символов. Этот Timage свойством bringtofront выводится поверх своего родителя, а в качестве координат указываются координаты первого символа из комбинации (их нужно определить), вместо самой комбинации вставить два-три пробела, чтобы избавиться от текста в месте вставки изображения.
  19. Alex7wrt

    Cобытия OnPaint и OnPainting

    Так и не понял в чем разница между cобытиями OnPaint и OnPainting? Или такой вопрос - как поменять цвет фона у объекта TText.
  20. простой способ - это предложить пользователю программы ввести диагональ своего монитора, чтобы он мог точно оценить размеры того, что на экране. Типа: хотите увидеть реальные размеры чего-то там, тогда введите сколько у вас дюймов в диагонали. Тогда на основании этой величины и разрешения экрана вычислить размер пикселя как отношение диагонали к квадратному корню из суммы квадратов ширины и высоты экрана в пикселях. И еще умножить на 25.4 (к-во миллиметров в дюйме). И если, к примеру, оказалось что размер пикселя равен 0.23 мм, то, чтобы кнопка была размером 40 на 10 мм, нужно задать ей размеры 40/0.23 и 10/0.23 пикселей. P.S. По предыдущему ответу догадываюсь, что в WinAPI все-же есть функция считывания DPI. Тогда все вообще элементарно. Не нужно даже просить пользователя ввести диагональ. )) Но мне не доводилось пользоваться такой функцией.
  21. Estra ответил на вопрос относительно кнопки "Назад". Что касается баннера, возможно здесь нужно задать размеры. Попробуйте например выставить align в mostbottom и посмотрите, что получится. Вы используете процедуру BannerAd1ActionCanBegin, в теле которой загружаете баннер. Описание этого события гласит: "Occurs after your user taps the advertising banner, and before the banner responds to this user action." То есть событие происходит после того как пользователь нажмет на баннер. Поэтому в Вашем коде баннер грузится только после нажатия на контейнер. Вы точно здесь ничего не путаете?
  22. Пока что сделал с помощью костыля - отрисовка элемента при движении мыши осуществляется раз в два или более события. Так запаздывание элемента становится меньше, движения - быстрее, но не такие плавные. Ничего лучше пока не придумал.
  23. Как и в прошлый раз пошел другим путем. Просто напросто ставим для перетаскиваемого объекта bringtofront и он спокойно пролетает над всеми остальными. Возник другой вопрос - на андроиде объект слишком медленно передвигается за позицией пальца на экране, с запаздыванием, тогда как в виндовсе такого нет. Вопрос в следующем: как избежать такого на андроиде, ускорить перемещение объекта, чтобы он все время находился в позиции курсора. Я так понимаю, что отрисовка объекта на новом месте не поспевает за генерацией события onmousemove. Возможно для быстрых перемещений пальцем по экрану сотоит не отрисовывать объект в каждой точке, а через какой-то интервал. Это так мысли в слух. Если кто подскажет, буду признателен.
  24. Спасибо за ответы! Наверное нужно более детально описать мою задачу. Я хочу реализовать перетаскивание объектов мышкой. Методы Drag &Drop не подходят поскольку в процессе переноса не отображается объект (по крайней мере у меня так, может это можно изменить, если можно - хотелось бы знать как). Поэтому перетаскиваю по старинке - с помощью событий onmouse -down, - move, -up. Все нормально, пока перетаскиваемый объект один. Если же их несколько, то при пересечении "траектории" переноса с расположением другого объекта переносимый объект не движется, пока не покинет пределы другого объекта. Я понимаю что это из-за того, что при нахождении указателя мыши над другим объектом срабатывают его события. Этого не происходит если объекты неактивны (enabled=false).Тогда все отлично. Кроме внешнего вида - хотелось бы чтобы он не "тускнел". А сами объекты - не обязательно Label или кнопки. Могут быть TText например. То есть вопрос более универсальный. Когда-то давно уже сталкивался с этим вопросом но тогда быстро переключился на другой путь, и до решения дело не дошло. Вот сейчас задумался над этим.
×
×
  • Создать...