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

Brovin Yaroslav

Администраторы
  • Постов

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

  • Посещение

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

    390

Весь контент Brovin Yaroslav

  1. Добрый день, Эту тему читали: Как Получить текст по TCP (Indy) в нужной кодировке?
  2. Права на скачивание восстановил. Теперь можете скачивать файлы с форума.
  3. procedure TForm1.FormCreate(Sender: TObject); begin ScrollBox.AniCalculations.Animation := True; ScrollBox.AniCalculations.BoundsAnimation := True; ScrollBox.AniCalculations.TouchTracking := [ttVertical, ttHorizontal]; end;
  4. Windows XP больше не поддерживается ни Microsoft, ни Embarcadero. FireMonkey официально не поддерживается на Windows XP. Поэтому с большой долей вероятности вы ответ не получите.
  5. Разместите непосредственно на самой форме TLayout. Layout.HitTest := True; Layout.Align := TALignLayout.Content; Отправьте слой на задний план: Send To Back Используйте события OnClick и OnDblClick у Layout
  6. Фоновое выполнение операции без "замораживания" отрисовки
  7. Глядя на ваш проект, я могу уверенно сказать, что вы не знаете основ объектно-ориентированного языка Delphi. А раз так, то я вам порекомендовал бы вначале изучить основы, а потом уже писать код. После прочтения, хотя бы Программирование на языке Delphi. Учебное пособие. у вас у самого отпадут многие вопросы и думаю вы по другому взгляните на свой код. P.S. Пара мыслей на счет вашего кода: Ваша ошибка: Попытка обратиться изнутри класса формы к полям формы, через внешнюю глобальную переменную, которая просто не создана. Например, здесь вы создаете форму и сохраняете ее в локальной переменной AForm procedure TForm1.Button1Click(Sender: TObject); var Aform:TForm5; begin Aform := TForm5.Create(Application); Aform.Parent := Form1; Aform.Width := Form1.Width; Aform.Height := Form1.Height; Aform.Left := Form1.Left; Aform.Top := Form1.Top; Aform.ShowModal; Aform.Destroy; end; А тут, почему-то считаете, что в Form5 содержит вашу форму, что и в AForm (Не верно, никакой связи между этими переменными нету). procedure TForm5.FormCreate(Sender: TObject); begin Form5 := Button1.Parent as TForm5; Form5.Height:=300; Form5.Width:=400; end; Неправильно, Обращаться к форме внутри формы, через глобальную переменную по многим причинам. var Form5: TForm5; procedure TForm5.FormCreate(Sender: TObject); begin Form5 := Button1.Parent as TForm5; Form5.Height := 300; Form5.Width := 400; end; Отсюда при обращении к Form5.Height (где Form5 = nil в вашем случае) вы получите Aсcess Voiolation Правильно: напрямую обращаться внутри класса к полям формы: var Form5: TForm5; procedure TForm5.FormCreate(Sender: TObject); begin Height := 300; Width := 400; end;
  8. В RTL включен уже класс по работе с ZIP-архивами: System.Zip.TZipFile
  9. Демо проекты: demos.zip Презентации: 01. Улучшение продуктивности и качества кода при разработке на VCL.pdf 02. Обеспечение взаимодействия настольных и мобильных приложений.pdf 03. Переход к мобильности и платформе приложений FM.pdf
  10. Первая версия AppMethod вышла между XE5 и XE6 и представляла собой XE5. Новая версия AppMethod, которая вышла в июне основывается на ХЕ6. В дальнейшем я думаю такая же практика будет продолжаться. Вначале релиз RAD Studio, а потом уже обновленная версия AppMethod.
  11. Триггеры вызываются автоматически на уровне TControl. То есть, когда пользовать нажимает на кнопку TButton, кнопка при: нажатии мышкой на кнопкуперемещении мыши по области кнопкивыходе из области кнопкиЗапускает процедуру срабатывания триггеров через: { ITriggerEffect } procedure ApplyTriggerEffect(const AInstance: TFmxObject; const ATrigger: string); virtual; { ITriggerAnimation } procedure StartTriggerAnimation(const AInstance: TFmxObject; const ATrigger: string); virtual; procedure StartTriggerAnimationWait(const AInstance: TFmxObject; const ATrigger: string); virtual; Тем самым TControl передает этот вызов всем дочерним объектам кнопки. В том числе вашему TButtonStyleObject. Поэтому картинка в TButtonStyleObject сменится на базовом уровне и не нужно форсировать вызов. Вы описали не полностью вопрос, потому что начали вы с ручного вызова события, а кончили сменой картинки в TButtonStyleObject. На вторую часть я ответил выше. На первую часть вопроса, вы можете вытащить объект стиля, взять у него интерфейс IControl и вручную сэмулировать срабатывание клика, например так: var StyleObject: TFmxObject; StyleObjectControl: IControl; begin StyleObject := Button1.FindStyleResource('background'); if (StyleObject <> nil) and (StyleObject is TControl) then begin StyleObjectControl := IControl(StyleObject); StyleObjectControl.MouseDown(TMouseButton.mbLeft, [], 0, 0); StyleObjectControl.MouseClick(TMouseButton.mbLeft, [], 0, 0); StyleObjectControl.MouseUp(TMouseButton.mbLeft, [], 0, 0); end; end; Однако, я бы не стал придумывать велосипед.. Попробуйте уточнить, что именно вы хотите добиться.
  12. Нет, если стиль уже загружен в Design-Time в TStyleBook. То повторная загрузка не нужна.
  13. В вашем проекте не лишним будет не только создать TStyleBook, но и подключить его к форме Form.StyleBook. После этих стандартный манипуляций стиль успешно будет применен.
  14. Добрый день Стандартный TProgressBar работает так: Держит две картинки: задний фон, без прогресса (в вашем случае желтые кубики) и активный прогресс (синие кубики) По мере прогресса растягивает картинку с активным прогрессом Отсюда ваш вариант не сделать только при помощи стиля. Так как вариант растягивания картинки с синими кубиками не подходит для вас. Решение Решение вашего варианта может быть в наследовании TProgressBar и переопределении в наследнике алгоритма заполнения активного прогресса путем перекрытия метода TProgressBar.DoRealign. Далее регистрируете ваш новый компонент и используете его.
  15. Попробуйте сбросить кэш и cookies у мобильного браузера. Проверил на других мобильных устройствах, сайт открывается. Когда выйдет новая версия движка форума, планирую сделать обновление. Возможно, описанные вами проблемы будут решены.
  16. Всеми возможностями среды можно пользоваться только 30 дней. Разработка под Android бесплатная в принципе (даже по истечении испытательного срока). Если мне память не изменяет то вроде только под C++ Builder Разработанные приложения под Андроид можно публиковать в Google Store (даже по истечении испытательного срока) P.S. Еще вроде обновили FAQ и описание варианта Free на официальном сайте: http://www.appmethod.com/pricing
  17. Нужно именно форму встроить с рамкой или встроить содержимое одной формы в другую? Если речь идет о втором, то есть механизмы Frame (аналогично VCL). Создаете фреймы в проекте. B в нужных местах формы размещаете их в любом количестве. Кстати использование фреймов для разработки позволяет разгрузить форму от логики по обработке UI и сосредоточиться на логике обработки ваших данных.
  18. Если у вас все есть, то в чем собственно вопрос?
  19. Просто используйте на всех платформах тот вариант, который вас устраивает: SubString0 - если вы хотите работать с 0-основными строками SubString1 - если хотите работать как-будто с 1-основной строкой
  20. Думаю, логично будет прикрепить сравнительные скриншоты в этому вопросу, чтобы было наглядно виден результат сравнения. Так же полагаю, вам следует подробнее изучить вопрос печати любых изображений, так как печать изображения никак не связана с FireMonkey. Постараюсь кратко пояснить. Вы делаете скриншот любого приложения. И получаете размер изображения в точках. Ровно столько, сколько занимает это изображение в видео памяти. Или другими словами, если размер экрана был 300 х 400 точек, то такое же изображение, такого же качества вы получите. По сути скриншот ничем не отличается от обычного вывода изображения на экран. Далее вы пытаетесь 300 х 400 точек распечатать на бумаге А1 (В районе: 594 × 841 мм). То есть спроецировать пиксель в физические размеры на бумаге.Или другими словами вы пытаетесь один пиксель вашего скриншота разместить в регион бумаги размером (594/300 ~ 2 мм, 841 / 300 ~ 2,8 мм). То есть в конечном итоге каждая точка вашего изображения займет на бумаге точку с физическим размером 2 мм на 3 мм. Думаю дальше уже понятно, что вот она и потеря качества. Ошибочно полагать, что можно любое изображение без потери качества распечатать на любом формате бумаги. И это не зависит от того, каким образом было сформировано изображение окна.Так как размер все равно будет одинаковым.
  21. Как я понял исходный вопрос все-таки касался продвижения приложения и необходимости создания двух версий приложения или одного. А вы ответ дали на другой вопрос: "Как можно сделать локализацию мобильного приложения".
×
×
  • Создать...