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

Лидеры

  1. Brovin Yaroslav

    Brovin Yaroslav

    Администраторы


    • Баллы

      17

    • Постов

      2 124


  2. Rusland

    Rusland

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


    • Баллы

      4

    • Постов

      1 204


  3. Kitty

    Kitty

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


    • Баллы

      4

    • Постов

      792


  4. Равиль Зарипов (ZuBy)

    Равиль Зарипов (ZuBy)

    Модераторы


    • Баллы

      2

    • Постов

      2 517


Популярный контент

Показан контент с высокой репутацией 19.10.2016 во всех областях

  1. Brovin Yaroslav

    Когда много таймеров

    В любом случае рост таймеров всегда будет сказывать на скорость приложения и запаздывания. Поскольку таймеры в fmx выполняются в главном потоке, то соответственно все OnTimer события будут вызываться по очереди. И чем дольше занимает выполнение этих событий, тем таймеры будут менее точны. Предел количества таймеров не знаю :-) НО любую задачу можно выполнить несколькими способами. В вашем случае нужно просто сделать типа Менеджер расписаний, который будет базироваться на одном всего лишь таймере и в OnTimer проверять наступило ли событие или нет.
    6 баллов
  2. Все ясно. У вас ошибка. Посмотрите внимательно на параметры функции Canvas.DrawBitmap. Первый прямоугольник - это область из битмапа, которую вы будите рисовать. Второй прямоугольник - это область на канве, куда вы будите выводить часть битмапа. Вот так будет правильно: Image1.Bitmap.Canvas.DrawBitmap(MyBitmap, MyBitmap.BoundsF, MyRect, 1); P.S. В следующие такие вопросы обязательно прикрепляйте ваш проект. Это сэкономит кучу времени на ненужные вопросы.
    3 балла
  3. ObjectiveC class CTCallCenter could not be found Бага в трекере и уже пофикшена. Возможно будет в Update 2.
    2 балла
  4. Добрый день! Image1.Bitmap Скорее всего он у вас имеет нулевые размеры, попробуйте перед Image1.Bitmap.Canvas.BeginScene; указать Image1.Bitmap.SetSize(X,Y);
    2 балла
  5. Kitty

    Благодраность

    Большое спасибо Ярославу, что находит время и фиксит проблемы, которые мы тут поднимаем. И курсы его великолепные! Спасибо профессионалам, таким как ZuBy, который терпит наши глупые вопросы и помогает. СПАСИБО!!!
    2 балла
  6. Вот как можно получить уровень заряда. В Image меняйте картинку на соответствующую уровню заряда.
    2 балла
  7. Дело в том, что у вас Image1.Bitmap, как экземпляр класса TBitmap присутствует. НО в нем нету никакой информации. То есть по факту у него размер равен 0 на 0. Это значит, что для него хендл не будет выделяться (Зачем системе хранить пустой битмап). Поэтому, когда вы пытаетесь с ним поработать и получить доступ к канве, то получаете такую ошибку: raised exception class ECanvasException with message 'Handle not allocated' Теперь смотрим ваш код: Image1.Bitmap.Canvas.BeginScene; Будет работать с канвой, но хендла нет. отсюда будет исключение. Image1.Bitmap.Clear(0); Опять же работает с канвой и пытается очистить пустой битмап. Image1.Bitmap.LoadFromStream(MemStream); Это корректный вызов, при загрузке нового битмапа будет выделен хендл на уровне Image1.Bitmap. Соответственно, вам нужно: Сформировать новый битмап Загрузить его в Image1.Bitmap На Windows используется GDI+/Direct2D канва, которая может работать по другому. А на мобильных платформах GPU, поэтому у вас и возникает ошибка.
    2 балла
  8. Error

    Когда много таймеров

    Добавлю что менеджер событий - это единственное верное решение, в противном случае (куча таймеров) приложение станет настолько не детерминированным, что глюки будут лезть отовсюду, а нормальная отладка просто невозможна.
    1 балл
  9. как понять просто сделать снимок не открывая камеру? вы думаете у вас камера постоянно включена, но вы не видите потому-что не запущено приложение которое выводит это на экран?
    1 балл
  10. Rusland

    У меня не работает DrawBitmap

    Ну все правильно. Картинка 70 на 70, часть картинки черная, а Rect с размерами TRectF.Create(50, 30, 120, 100);
    1 балл
  11. Повторюсь, Проект?
    1 балл
  12. Я вам в предыдущей ветке отвечал про Image.Bitmap. А вы продолжаете делать ту же самую ошибку.
    1 балл
  13. Rusland

    Благодраность

    http://edu.fire-monkey.ru/landing/index.html
    1 балл
  14. Steepe_Hare

    Другая система координат?

    Объясните, пожалуйста, почему этот простой код работает по-разному в Win32 и на Андроиде? Картинка 150x200 в битмап уже загружена и нужно ее расчертить. Image1.Bitmap.Canvas.BeginScene; try Image1.Bitmap.Canvas.Stroke.Kind := TBrushKind.Solid; Image1.Bitmap.Canvas.Stroke.Color := TAlphaColors.Blue; for I := 0 to 9 do Image1.Bitmap.Canvas.DrawLine(TPointF.Create(I * 15, 0), TPointF.Create(I * 15, Image1.Bitmap.Height), 1); for J := 0 to 9 do Image1.Bitmap.Canvas.DrawLine(TPointF.Create(0, J * 20), TPointF.Create(Image1.Bitmap.Width, J * 20), 1); finally Image1.Bitmap.Canvas.EndScene; end; Под Виндой создается точная сетка 10x10, а под Андроид как будто другая система координат и территория делится на огромные квадраты (больше, чем надо).
    1 балл
  15. Вы меняли значение BlobType как я предложил в предыдущем сообщении? У меня работает /// Эта часть не работает! /// if (Value.IsEmpty=false) and (Value.IsObject=true) then begin // LB:=TBlobField(Value.AsObject); // ужос!!! // LB.SaveToStream(LStr); // LBM:=FMX.Graphics.TBitmap.CreateFromStream(LStr); // try // Canvas.DrawBitmap(LBM,RectF(0,0,LBM.Width,LBM.Height),Bounds,1); // finally // LBM.Free; // end; LBM := TBitmap(Value.AsObject); Canvas.DrawBitmap(LBM,RectF(0,0,LBM.Width,LBM.Height),Bounds,1); end; /// /// /// И вообще без обработчика события тоже всё рисуется. Это некоторое расстояние называется разделительная линия.
    1 балл
  16. ответ: можно P.S. несколько раз прочитал, не понял о чем
    1 балл
  17. Всем доброго времени суток, очень помогла тема и ответы выше. Решил добавить небольшой пример касательно "Tgriddrawstates" ( Указание выделена ли строка, выделена ячейка и в фокусе ли ячейка или нет ) Может быть полезно новичкам. procedure TForm4.StringGrid1DrawColumnCell(Sender: TObject; const Canvas: TCanvas; const Column: TColumn; const [Ref] Bounds: TRectF; const Row: Integer; const [Ref] Value: TValue; const State: TGridDrawStates); var TextLayout : TTextLayout; TextRect: TRectF; begin if TGridDrawState.RowSelected in State then Canvas.Fill.Color := TAlphaColors.Blue; else Canvas.Fill.Color := TAlphaColors.white; end; вместе с кодом отрисовки ячейки грида выше можно управлять цветом фона да и чем угодно при например выделении строки.
    1 балл
  18. AngryOwl

    Благодраность

    Вы знаете... На самом деле, за последний год изменилось очень многое. Я искренне рад за компанию Embarcadero, и, конечно, за сам продукт RAD Studio. Им есть над чем работать, возможно не хватает ресурсов и т.д. и т.п... Однако на все сложности, думаю, у них очень большие перспективы. Серьезно! На мой взгляд, на сегодняшний день, аналога RAD Studio просто не существует! Его просто нет! Ну вот хоть убейтесь - нет его! И это далеко не только мое мнение. Мнение очень многих серьезных программистов, которые используют и другие IDE и, тем-более, языки (и которые работают в очень серьезных компаниях). И "всепропальщиков" я слышу со времен моей работы с Turbo-Pascal 5.0... ) Недостатки есть у всех! Можно так охаять любую IDE и любой язык, - что мало не покажется. Это касается "любого" (я о всяких студиях... и мелкомягких и корпорацияхдобра)... Вопрос больше в ресурсах, которые есть у компании, чтобы оперативно решать проблемы: баги, обновления, документация, поддержка и т.д... А если говорить непосредственно о FMX, то вообще - все остальные тупо в пролете! И мы говорим о продукте компании, которая катастрофически уступает своими возможностями и ресурсами таким монстрам как Microsoft с их Visual Studio. Сейчас уже все больше и больше и документации и информации и ресурсов по FMX, в частности. Это и китайские ресурсы, и японские и немецкие. Не думайте - что только в постсоветском пространстве популярен Delphi, в частности, и среда RAD Studio. Это не серьезно! ) Китай, Япония, Германия, Франция и т.д. и т.д. Все больше и больше и открытых исходников и разнообразных ресурсов и компонентов. Тот же Boian Mitov - куча компонентов, уникальные инструменты. Большинство - с поддержкой, и под, FMX! (не реклама! ссылок не даю - сами найдете). Уникальный болгарский (если мне память не изменяет) программист - написал и развил огромную библиотеку... И таких как он - много. К чему я все это... А к тому - что изменилось столько всего! что даже не уверен, что об этом вообще надо говорить. А уж я то за ней следил еще со времен библиотеки VG-Scene (Евгения Крюкова) и далее - с самой первой XE... А уж текущий ресурс - считаю один из лучших. Главное - уметь пользоваться! И я полностью согласен с [Kitty] и поддерживаю - благодарю ребят за то, что они создали и ведут этот ресурс!
    1 балл
  19. Kitty

    Благодраность

    Отдельное спасибо за курсы - титанический труд и отличный результат!!! P,S. Дополнительно, остаюсь при своем мнении, оставите себя в истории как Архангельский - бумажной книгой...:)
    1 балл
  20. Brovin Yaroslav

    Благодраность

    Пока есть такие благодарные и вежливые люди, то помогать всегда в радость :-)
    1 балл
  21. Kitty

    Благодраность

    Я чисто от себя.. Читаю мануал и если там нет решения я в тупике...Вроде как и не блондинка, но полный тупик. Даже начинаю сравнивать себя с персонажами Павла Воли. Но пока есть Ярослав и ZuBy, не все потеряно... Спасибо!
    1 балл
  22. kami

    Благодраность

    Двусмысленно
    1 балл
  23. Я говорю про все диалекты SQL. Когда идет речь о том, что не работает сравнение в where или like, нужно смотреть настройки кодировки на сервере и в строке соединения. UPD: Прочитал, что есть проблема сортировки в SQLite. Проверил — есть, и LIKE, и ORDER BY. Прочитал ответ разработчиков — подход порадовал. Потребуется воспользоваться функцией sqlite3_create_collation (есть в компонентах FireDAC, UniDAC, модуле RTL\System.Sqlite.pas). Я нашел пример только на C. Может у Вас получится воспользоваться — будем рады посмотреть пример.
    1 балл
  24. Вот пример вычисления высоты итема. ListViewVariableHeightItems2.zip Я этот пример показывал на лонче в питере.
    1 балл
  25. Ярослав, Вы забыли указать, что компонент допускает в бесплатном варианте до 1000 сессий, потом он не будет работать.
    1 балл
  26. uses AndroidAPI.Helpers, AndroidAPI.JNI.GraphicsContentViewText; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } function BatteryPercent(const aContext: JContext): Integer; end; var Form1: TForm1; implementation {$R *.fmx} function TForm1.BatteryPercent(const aContext: JContext): Integer; var filter: JIntentFilter; battery: JIntent; begin filter := TJIntentFilter.Create; filter.addAction(TJIntent.JavaClass.ACTION_BATTERY_CHANGED); battery := aContext.registerReceiver(NIL, filter); result := battery.getIntExtra(StringToJString('level'), -1) end; procedure TForm1.FormCreate(Sender: TObject); var myContext: JContext; begin myContext := SharedActivityContext; Showmessage(BatteryPercent(myContext).ToString); end; а еще по другим параметрам испанец круто обсосал тут http://neftali.clubdelphi.com/?p=3157 а если надо модель, серийный то это у вас на компе Delphi\Samples\Object Pascal\Mobile Snippets\DeviceInfo (но тут хоть ИОС есть).
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...