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

haword

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

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

  • Посещение

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

    19

haword стал победителем дня 16 февраля 2022

haword имел наиболее популярный контент!

1 Подписчик

Посетители профиля

16 115 просмотров профиля
  1. разве в демках файрмонки не было прозрачности?
  2. крупные системы так и остались на делфи. просто акценты сместились на веб и смартфоны. а где хорошо платят туда и идут. через лет 5-10 может вообще отмереть профессия программист так как какой ни будь ИИ сможет эту работу делать лучше и быстрее. И если это направление начнет развиваться и дальше то писать ПО уже не будут а будут заказывать под свои нужды у этих корпораций. А ИИ сам все сделает причем в кратчайшие сроки.
  3. требовалось когда то - печать на принтер через блютуз накладных агентами по продажам. приезжали в точку, отдавали товар, печатали ТТН и уезжали в другую точку.
  4. haword

    RAD 11 и Android

    здесь https://docwiki.embarcadero.com/RADStudio/Alexandria/en/FireMonkey_Platform_Prerequisites написано - Warning: RAD Studio supports these Android development tools. Do not use other versions or update them independently of RAD Studio.
  5. больше не поддерживается это. ищите как это делаться в новой версии.
  6. haword

    RAD 11 и Android

    embarcadero говорят что не надо так делать, только то sdk что идет с дистрибутивом будет 100% работать.
  7. новый андроид, новая sdk, новая делфи или с++ билдер )
  8. просто все забываешь что знал про делфи и начинаешь кодить на java или kotlin ) в принципе там своих заморочек полно. все заново изучать. в интернете полно учебников как по шагам это сделать. но за то потом результат будет налицо. гриды летают. работа с потоками не тормозит прокручивающийся грид. минус - на ios уже конечно не запустишь свое ПО. я пробовал и Android Studio и Xamarin. мой вердикт такой - быстро, на коленке, пару кнопок и список чего либо без заморочек с кэшированием картинок и так далее - fmx пойдет, или там калькулятор налабать. если хочешь чтобы приложение летало, списки прокручивались плавно, без тормозов, при это не было проблем что не запускается на новом андроиде - то Android Studio. Если хочется заморочиться и в результате получить ПО работающее быстрее чем FMX но тормознее чем на Android Studio но за то с возможностью запуска на iOS MacOS то Xamarin. Если сравнивать Xamarin с FMX то тут так, Xamarin более отзывчивее, поддержка лучше, реагируют на новые SDK быстрее, но нельзя просто так рисовать на Canvas как в FMX потому что его там нет. Например если захотите подкрасить ячейку в списке в отдельный цвет то придется пройти целый квест чтобы это сделать меняя стили. На FMX перекрыл прорисовку ячейки и рисуй сам что хочешь. Поэтому в итоге для себя решил что Win Mac Lin - FMX, для мобильных ОС либо Xamarin но там придется прыгать с бубном делая так чтобы приложение работало везде одинаково, либо Android Studio и XCode если хочешь надежности и стабильности.
  9. как то все через заднее место ) если я правильно понял то должно быть так - по таймеру запускается поток, в нем идет вычисление и синхронизация для обновления информации. если делать как у вас то в каждом цикле надо сообщать потоку что пора бы обновить данные. так как поток может хз когда вызваться и счетчик может уже далеко улететь. при этом если вы используете одновременно одну переменную ее надо делать потокобезопасной и блокировать.
  10. так они не обязывают вводить api какое то время пока не обкатают новшества. а потом в play появляется это обязанность определенного api. а в делфи тянут до последнего с этим пока запрета не будет опубликовывать такие приложения.
  11. только проблема в том что при выходе новой версии андроид по написанное на делфи начинает падать и надо ждать новую версию делфи чтобы исправить это. андроид студия бесплатна и выходит часто, так что подготовится всегда можно успеть.
  12. ну не так все плохо ) Для Win32/64, Mac, Linux - FMX Для Android - Android Studio я думаю так наиболее оптимально.
  13. то же самое просто ставить развилки в зависимости от ос ) по винде можно попробовать этот вариант из интернета type TMargins = record Left, Top, Right, Bottom: Double end; procedure GetPrinterMargins(var Margins: TMargins); var PixelsPerInch: TPoint; PhysPageSize: TPoint; OffsetStart: TPoint; PageRes: TPoint; begin PixelsPerInch.y := GetDeviceCaps(Printer.Handle, LOGPIXELSY); PixelsPerInch.x := GetDeviceCaps(Printer.Handle, LOGPIXELSX); Escape(Printer.Handle, GETPHYSPAGESIZE, 0, nil, @PhysPageSize); Escape(Printer.Handle, GETPRINTINGOFFSET, 0, nil, @OffsetStart); PageRes.y := GetDeviceCaps(Printer.Handle, VERTRES); PageRes.x := GetDeviceCaps(Printer.Handle, HORZRES); // Top Margin Margins.Top := OffsetStart.y / PixelsPerInch.y; // Left Margin Margins.Left := OffsetStart.x / PixelsPerInch.x; // Bottom Margin Margins.Bottom := ((PhysPageSize.y - PageRes.y) / PixelsPerInch.y) - (OffsetStart.y / PixelsPerInch.y); // Right Margin Margins.Right := ((PhysPageSize.x - PageRes.x) / PixelsPerInch.x) - (OffsetStart.x / PixelsPerInch.x); end; function InchToCm(Pixel: Single): Single; // Convert inch to Centimeter begin Result := Pixel * 2.54 end; procedure TForm1.Button2Click(Sender: TObject); var Margins: TMargins; begin GetPrinterMargins(Margins); ShowMessage(Format('Margins: (Left: %1.3f, Top: %1.3f, Right: %1.3f, Bottom: %1.3f)', [InchToCm(Margins.Left), InchToCm(Margins.Top), InchToCm(Margins.Right), InchToCm(Margins.Bottom)])); end; а вообще может просто лист не правильно в принтер вставляешь?)
  14. тогда не понял ничего. почему бы вам не сделать смещение в пикселах для печати? типа настройки страницы и там в точках отступ и его при печати использовать? тогда под каждый принтер можно будет подстроиться. у меня другая проблема была, у меня при печати текста было ощущение что весь текст на несколько градусов повернут что ли, и у буквы К вертикальная грань сверху съезжала на 1 пиксель где то относительно низа. Но это было только при печати в pdf на macos.
  15. картинка ровная в image1 а на принтере косо? а так тоже криво? Printer.Canvas.DrawBitmap(Image1.Bitmap, RectF(0,0, Image1.Bitmap.Width, Image1.Bitmap.Height) , RectF(0,0, Printer.PageWidth, Printer.PageHeight), 1);
×
×
  • Создать...