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

Andrey Efimov

Модераторы
  • Постов

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

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

    129

Весь контент Andrey Efimov

  1. Всё, это последний ответ вам (на сегодня). Читайте внимательно моё последнее сообщение. А ещё читаем ВикипедиЯ - PNG От того, что вы изменили расширение картинок, их формат не меняется. Чтобы изменить формат изображения, его нужно открыть в любом редакторе изображений и пересохранить в нужном формате. p.s. Разговор про то, как сохранить картинку в формате png, даже не связан с firemonkey.
  2. Зачем вам это? наймите нормального программиста и он напишет вам приложение... И я не вижу, чтобы вы сами пытались найти ошибку, даже теперь когда я вам указал на ошибку, вы ведёте себя так как будто я вам ничего не говорил... Напишу ещё раз: Ваши ошибки: Вы зачем загружаете картинки с расширением «.png», когда они на самом деле в GIF формате?? Решение: Загрузить картинки в PNG формате с расширением ".png". У Image1 выставить свойство WrapMode: iwStretch У вас почти всё лишнее, нужно было оставить процедуры "TForm1.FormCreate" и "SQLSelect"...
  3. Пока могу только посоветовать статью "Получаем список доступных устройств хранения информации". Важно: Третий метод будет работать на всех версиях Android до 4.3. С версии 4.3 произошли значительные изменения в организации файлов. К сожалению, у меня нет устройства с Android 4.3 чтобы провести анализ и написать код для версий выше 4.3. И второе, приложения, написанные в Делфи, по какой-то причине, не могут прочитать файл mounts. Я предполагаю, что если бы файл можно было прочитать, то код для версий выше 4.3 основывался на чтении этого файла. UPD (25.11.14). Для Android 4.4.* описано тут: Android 4.4 и запись на внешнюю карту памяти...
  4. Ну вот вы опять… Зачем вы выложили весь проект целиком?! Я же сказал вам выложить чистый проект, на котором воспроизводится ошибка или почистить этот, оставить только минимально необходимый код для воспроизведения ошибки… Далее… Я уже не раз писал вам, чтобы вы не просто слепо копировали чужой код, а ещё и разбирали его, похоже вам просто не хочется этого делать. В данном случае всё опять повторяется, копируете код не думая. Если бы вы почистили проект, то нашли бы причину сами. А так мне пришлось делать это за вас. И, похоже, вы даже не пытались разобраться самостоятельно, а потом удивляетесь, что у вас не работает приложение. Ваши ошибки: Вы зачем загружаете картинки с расширением «.png», когда они на самом деле в GIF формате?? Так же вам стоит обратить внимание на файл «FMX.FontGlyphs.Android.pas», здесь сами догадаетесь. p.s. Текст выше мог показаться грубоватым, на самом деле, я всегда готов помочь, но только при условии, что человек хотя бы пытается сам разобраться в коде.
  5. Один из посетителей моего блога прочитав статью, в которой создаётся игра для детей с использование SQLite, в комментариях сообщил «На Android 2.3 вылетает и на устройстве и на эмуляторе, пытался сам найти и устранить проблему, так и не получилось, выше Android 4.0 работает прекрасно, где копать, не ясно.». Я пообещал проверить и сегодня, на очень маленький промежуток времени, получилось достать устройство Samsung Galaxy S Plus (I-9001). Попробовал запустить своё приложение, и выпало сообщение «Произошла неожиданная остановка приложения Rebusy (процесс com.embarcadero.Rebusy). Повторите попытку.» Предположив, что проблема связана именно с работой SQLite, решил запустить (через F9) стандартный сниппет (RAD Studio\12.0\Samples\MobileCodeSnippets\SQLite) и ошибка повторилась. Отчёт приложил log.zip. После этого попробовал запустить приложение к статье «Splash Screen», запускается, но сам сплеш скрин не успевает появиться . Потом попробовал запустить приложение из статьи «Файловый менеджер», запустилось и работало без проблем. Вопросы: Что за баг такой может быть? Может быть, кто-то ещё может проверить данное поведение (у стандартного сниппета) на устройстве с Android 2.3.3 – 2.3.6? Нужно ли сообщать о нём в QC или в XE6 уже исправили? Версия Android: 2.3.6 Версия IDE: Delphi XE5 Update 2 19.0.14356.6604 Скриншотов не приложу, т.к. забыл сделать их . Update. Нашёл что-то похожее в QC (119856), а может и то, что нужно. Я так понимаю исправили в XE6... p.s. Сейчас заметил, что исправили ещё один мой баг(в TMemo), класс! остаётся ещё два))
  6. Я других способов изменения стиля не знаю. Может быть, Ярослав что-то подскажет. Если необходимо внести небольшие изменения в стандартный стиль, например, изменить расстояние между картинкой и текстом в ListBoxItem, то можно создать и подгрузить стиль только с вашим изменением, тогда сам файл (в данном примере) будет весить всего 34 КБ.
  7. Почитайте эти темы, в них вы найдёте ответы на многие вопросы, связанные с картинками, включая ваш: Получаем разрешение экрана устройства, логические и физические размеры экрана в FireMonkey Как использовать иконки разного качества для экранов с разным DPI?
  8. Подключать разные стили к вашему проекту можно при помощи TStyleBook. Вносить изменения в стиль можно при помощи Bitmap Style Designer или TStyleBook. На форуме, в этом же разделе, достаточно тем про это: Где взять стандартный стиль в FireMonkey для iOS и Android, используемый по умолчанию? Как поменять цвет выделенного итема в ListBox для андроид стиля?
  9. Я вижу только одно решение, создать свой собственный "TOpenDialog". Т.е. будет открываться либо вкладка со списком директорий и файлов, либо всплывающая форма с тем же списком. Сложного в реализации ни чего нет, т.к. в Delphi уже всё готово (System.IOUtils).
  10. При запуске приложения через Delphi, старая версия удаляется и устанавливается новая. Чтобы избежать удаления необходимых файлов на время отладки, поместите их в другую папку, например, создайте папку для вашего приложения в корне карты памяти. Однако я не рекомендую использовать такую схему хранения данных в релиз версиях, т.к. если пользователь удалит ваше приложение, то эти файлы останутся на месте, т.е. будет мусор на карте памяти.
  11. Так вроде есть: http://docwiki.embarcadero.com/Libraries/XE5/en/FMX.StdCtrls.TGroupBox или я не правильно понял вас?
  12. Ярослав, я хочу добиться такого же эффекта как на последних 4-х скриншотах в первом сообщении. Там ни чего не обрезается.
  13. Ваш вариант работает, открылся в Delphi правда с ошибками. Буду искать ошибку у себя. В любом случае, Спасибо!
  14. Ярослав, Fit срабатывает только когда изображение больше чем TImage. Сергей, я сделал всё, как вы написали, реакции 0... Все изображения также подгружаются в исходном разрешении.
  15. Ярослав, Объясняю: Например, на форме лежит Layout1(Align: alTop; Height: 160), на нем лежит Timage(Align: alCenter; Height: 150; Width: 310). Т.е. размеры Timage фиксированные. Картинки, которые будут подгружаться в этот Timage не имеют каких-то стандартов по размерам, т.е. размер может быть «Height: 150; Width: 310» или «Height: 100; Width: 400». Чтобы они нормально выглядели и не мелко и не размазано, мне необходимо изменять их размеры (автоматически или через код приложения) пропорционально, подгоняя картинку под размер Timage. Единственный вариант, который работает и проверен мной, описан выше. Это перед компиляцией приложения поместить любую картинку в «MultiResBitmap». Тогда любые картинки, подгружаемые в Timage (во время использования приложения), сами, автоматически, пропорционально изменяют свои размеры. Использовать свойство «WrapMode: iwStretch» не вариант, т.к. большие картинки становятся сплющенными и т.п. В общем, пока, буду использовать «левую» картинку, чтобы все остальные автоматически подстраивались.
  16. Здравствуйте, Сергей! Я понимаю, что если изображение по размерам меньше TImage, то оно идёт по центру и не масштабируется до границ TImage. Но если изображение больше размеров TImage, то оно уменьшается до границ TImage с сохранением пропорций. Мне же нужно чтобы изображение всегда подгонялось под размеры TImage при этом сохраняя пропорции. Если вставлять картинку с оригинальными размерами (Например: Width: 310; Height: 150), то выглядит она мелко и не соответствует размеру TImage. Вот попытался сейчас изменить размеры так: Image1.Bitmap.Width := Trunc(Image1.Width * 1.34); Image1.Bitmap.Height := Trunc(Image1.Height * 1.34); Image1.Bitmap.LoadFromStream(InStream); Но не сработало... Может быть, у вас есть ссылки на материал, почитать? Как вообще правильно такое реализовать (вы подскажите, в какую сторону копать, а я уже попробую сам разобраться)?
  17. Позволю себе обновить данную тему. 05.03.14 Стали известны планы по развитию продуктов компании Embarcadero на 2014 год. Один из пунктов «Advertising and Payments components for Android and iOS», т.е. в RAD Studio появится возможность работы с рекламой и платежами. Оригинал: RAD Studio, Delphi and C++Builder Roadmap - March 2014
  18. Баг замечен на Android. Предположим у нас есть приложение, в котором по нажатию на кнопку подгружается картинка в «TImage» (Width: 310; Height: 150). Картинки могут быть как меньшего размера (например, Width: 215; Height: 150), так и большего (Width: 440; Height: 150). Высота указана одинаковой для примера, чтобы было проще понять, как выглядит баг. Я сделал три картинки и поместил их в ресурсы приложения. Для обозначения границ «TImage», поместил «TImage» в «TRectangle». Подгружаю из ресурсов: var InStream: TResourceStream; i: integer; procedure TForm1.Button1Click(Sender: TObject); begin if i=3 then i := 1 else i := i+1; // Load image InStream := TResourceStream.Create(HInstance, 'Test_' + IntToStr(i), RT_RCDATA); try Image1.Bitmap.LoadFromStream(InStream); finally InStream.Free; end; end; Если мы ни чего не добавляли вручную в «MultiResBitmap», то все подгружаемые в «TImage» картинки не подстраиваются под размеры «TImage», т.е. остаются в оригинальных размерах. А теперь мы добавим любую картинку в «MultiResBitmap» с настройкам по умолчанию: Например, картинку Width: 380; Height: 120. И в таком виде компилируем приложение, вот что мы получим: Как видите, теперь все картинки растягиваются по бОльшему размеру одной из сторон самой картинки, т.е. подгоняются автоматически под размеры TImage(Width: 310; Height: 150) сохраняя при этом пропорции сторон. Вопрос: Как исправить ситуацию своими силами, т.е. сделать как при добавлении любой картинки в «MultiResBitmap», но без ручного добавления картинки? Чтобы все подгружаемые картинки сохраняли пропорции и при этом растягивались также по размерам «TImage». p.s. По поводу прозрачности тема на форуме тоже есть. Тестовое приложение прикладываю.TImageBitmap.zip
  19. Обязательно, пока могу только посоветовать посмотреть в сторону "Создание службы(Service)". Пример тут: http://blog.blong.com/2013/11/delphi-and-android-services.html Продолжение: http://blog.blong.com/2013/11/delphi-and-android-services-part-2.html
  20. Всегда ищите ответ на ваш вопрос в поиске. Тема: Как массово задать размер шрифта у всех контролов? Как изменить размер шрифта: CornerButton1.Font.Size := 4; CornerButton1.StyledSettings := CornerButton1.StyledSettings - [TStyledSetting.ssSize];
  21. Если приложение одно, то можно запускать его как сервис и уже делать всё, что захочется, в любое время. Вообще тема интересная, надо будет рассмотреть её подробнее.
  22. Не вижу смысла делать два приложения. Вот, например, моя версия приложения для чтения RSS одного известного в сообществе сайта - http://delphifmandroid.blogspot.com/2014/01/rss-delphifeedsru-just-for-fun.html. Естественно написано для примера.
  23. Для запуска других приложений можно воспользоваться Intent’ами (намерения) - developer.android.com/reference/android/content/Intent.html По второму пункту ни чего пока не могу сказать, т.к. сам ещё не сталкивался с планировщиком.
×
×
  • Создать...