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

enatechno

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

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

  • Посещение

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

    26

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

  1. https://www.youtube.com/watch?v=ta_N6DSi0Xg с 22 минуты
  2. имхо: FMX - удачный инструмент. мы под даже под официанта все заточили. а клиенты бывают разные...
  3. Если "клиент" - клиент, то достаточно. Если "клиент" - официант, то нюансов чуть побольше.
  4. Поддерживаю Zuby. Чем проще, тем стабильнее. Три параметра - номер стола и время, проверка занятости. P.S. устанавливал себе виджет "аналоговые часы", казалось бы.... Из 5-10 (со скачиванием 1кк) не один не показывал правильное время после "просыпания" Андроида. Остановился на виджете одного японца, скачиваний меньше 100к. Кунг-фу решает.
  5. тут еще: http://blogs.embarcadero.com/yaroslavbrovin/2012/10/11/listboxitem_styling/ http://blogs.embarcadero.com/yaroslavbrovin/2012/10/15/listboxitem_styling_part2/ тут о новом подходе (видео)
  6. По приложенному примеру: в MySortTree нужно TTreeViewItem вместо TListBoxItem. при работе с TListBox и TTreeVew (заполнение и пр.) рекомендую использовать .BeginUpdate и .EndUpdate. По проблеме: Так вроде показывает без фантомов: procedure TForm1.SortTreeItemsClick(Sender: TObject); begin TreeView1.BeginUpdate; try TreeView1.Sort(MySortTree); TreeView1.ExpandAll; finally TreeView1.EndUpdate; end; end; P.S. А Вы используете какое-то особое правило сортировки? Если нет, рекомендую просто использовать TreeView1.Sorted := true для автоматической сортировки в алфавитном порядке по тексту в айтемах.
  7. Для "свернуть/развернуть" больше подходит TTreeView.
  8. Чтоб планшет не переходил при компиляции в спящий режим на нем: Settings(Настройки) -> Developer options (Для разработчиков) -> Stay awake (Не выключать экран) -> ON
  9. У нас тоже печать через базу данных. Отличие от описанного варианта только в том что база удаленная, а служба печати может быть установлена на любом клиентском компе с Windows, с которого и идет печать на любой принтер доступный с этого клиентского компа. При этом на клиенте служба может быть настроена для выбора только определенных заданий печати (например задания только определенного отдела или задания отправленные только с определенных терминалов).
  10. когда-то делал так: aMStream := TMemoryStream.Create; // считываем в aMStream, потом записываем в параметр пишущего запроса: {$IF CompilerVersion >= 28} aQuery.Params[i].SetStream(aMStream, ftBlob, true); {$ELSE} aQuery.Params[i].LoadFromStream(aMStream, ftBlob, 0); {$ENDIF}
  11. Я сталкивался когда-то (только не на TV). У меня дело было в некорректном стиле 'editstyle', используемом для TEdit.
  12. Большинство визуальных контролов в FMX - наследники от TStyledControl (см. схему). Даже если вы не указываете стиль явно для этих контролов, они используют стиль по-умолчанию. Поэтому код для изменения цвета лейбла будет в рантайм такой: Label1.StyledSettings := Label1.StyledSettings - [TStyledSetting.FontColor]; Label1.TextSettings.FontColor := TAlphaColorRec.Red; А вот TText - не является стилизованным компонентом (см. ту же схему), поэтому задается проще: Text1.Color := TAlphaColorRec.Red;
  13. Не помню точно, но вроде на дельфи так решается: Grid1.BeginUpdate; ... //изменение ширины колонок Grid1.EndUpdate;
  14. Для отображение значения Value в колонках используйте событие OnGetValue компонента TGrid. К сожалению не знаю Си. Но думаю Вы поймете, как это делается посмотрев на такой пример: void __fastcall TForm1::Grid1GetValue(TObject *Sender, const int Col, const int Row, TValue &Value) { if ((Col == 0) && (Row == 0)) { Value = DateTimeToStr(Now()); } } В этом примере нулевая колонка таблицы имеет тип TDateColumn.
  15. Задавайте свойство главной формы FormFactor.Orientations для различных представлений (View).
  16. В файле dpoj : begin Application.Initialize; Application.FormFactor.Orientations := [TScreenOrientation.Portrait]; Application.CreateForm(.....); Application.Run; end.
  17. enatechno

    PullRefresh

    http://fire-monkey.ru/topic/295-obnovlenie-spiskov-tlistbox-tlistview-kak-v-populiarnykh-prilozh/ http://fire-monkey.ru/topic/217-obnovlenie-spiska-listbox-kak-v-prilozhenii-vkontakte/
  18. Задан RotationCenter? В Вашем случае до выполнения RotationAngle нужно опустить по Y центр контрола, отображающего стрелку. Например так: В run-time: [контрол со стрелкой].RotationCenter.Y := 0.8; или в design-time: Значение 0.8 вычислено мной ориентировочно.
  19. Как Вы работали с потоком? Использовали TBitmapCodecManager.SaveToStream и указывали расширение .bmp? У меня такой код правильно отображает Ваш тестовый test3FMX.bmp: procedure TFormMulticam.Button1Click(Sender: TObject); var bmp: FMX.Graphics.TBitmap; aSurf: TBitmapSurface; aMemStream: TMemoryStream; begin bmp := GCameraArray[0].GetFMXBitmap; aMemStream := TMemoryStream.Create(); try aSurf := TBitmapSurface.Create(); try aSurf.Assign(bmp); TBitmapCodecManager.SaveToStream(aMemStream, aSurf, '.bmp'); Image1.Bitmap.LoadFromStream(aMemStream); finally FreeAndNil(aSurf); end; finally FreeAndNil(aMemStream); end; //Image1.Bitmap.Assign(bmp); bmp.Free; end; Пока не указано явно, что TBitmap имеет формат BMP, TImage в FMX работает с ним как с PNG.
  20. Спасибо Вам за видео. Я еще протестировал код без фикса на различных устройствах. На некоторых проблем не наблюдалось (samsung c android 4.3; desktop c windows 8 и 10), на некоторых был маленький "шум" (android 4.4.2), на некоторых было что-то типа такого https://youtu.be/EfFNAIfSRTg (nexus 7 c android 5.1.1; iOS simulator 7.1 и 9.1; desktop с windows 7).
  21. На мобильных устройствах тоже? С прикрепленным примером у меня описанная проблема наблюдается и на XE7 и на 10 Seattle. На Windows - ошибка плавающая. Но если нажать поочередно Fill и Clear несколько раз, то "шум" можно увидеть. Или может у Вас есть изменения в исходниках delphi? К сожалению тоже не помогло. Для тех кто правит исходники могу порекомендовать добавить в FMX.Graphics после создания Bitmap для Thumbnail строку Result.Clear(claNull); Мне помогло. function TBitmap.CreateThumbnail(const AWidth, AHeight: Integer): TBitmap; var FitRect: TRectF; begin Result := TBitmap.Create(AWidth, AHeight); Result.Clear(claNull); // <-- добавлена очистка if not IsEmpty and Result.Canvas.BeginScene then ......
  22. ABitmap := TBitmap.Create(AFitWidth, AFitHeight); ABitmap.Clear(claNull); try ABitmap.LoadFromStream(AStream); AThumbBitmap := ABitmap.CreateThumbnail(AFitWidth, AFitHeight); try AImage := FindComponent('Image' + I.ToString) as TImage; if Assigned(AImage) then begin AImage.Bitmap.Clear(claNull); AImage.Bitmap.Assign(AThumbBitmap); end; Так? Не помогает. Если выполнить AThumbBitmap := ABitmap.CreateThumbnail(AFitWidth, AFitHeight); а затем сразу сохранить AThumbBitmap на диск, то на диске он уже с шумом.
  23. 1). Скачиваю картинки с сайта 2). Уменьшаю "на лету" с помощью TBitmap.CreateThumbnail. 3). Отображаю в каком-нибудь контроле 4.) Сохраняю на диск Thumbnail картинки (кэширую). Обнаружил проблему во втором пункте. Сначала только на мобильных платформах, а потом и в Windows. Суть проблемы: При использовании CreateThumbnail для PNG-файлов с прозрачным фоном случайным образом на прозрачном фоне возникает "шум". В примере воссоздал этот пункт tstGetThumb.zip. Так должно быть: Так "шумит" в Windows (например если нажать Fill-Clear-Fill) Так "шумит" в iOS simulator Аналогичная ситуация и на мобильных устройствах. Временно решил эту проблему заменив пункт 2 на: 2a). Сохраняю исходную(большую) картинку на диск 2б). Считываю уменьшенную картинку с помощью TBitmap. LoadThumbnailFromFile с диска. В этом случае шума нет. Но при большом количестве и размере картинок происходит торможение программы. Кто-нибудь сталкивался с подобной проблемой? М.б. я не правильно использую CreateThumbnail?
×
×
  • Создать...