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

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

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

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

  • Посещение

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

    265

Весь контент Равиль Зарипов (ZuBy)

  1. У TBitmap есть такой метод, посмотрите его function TBitmap.EqualsBitmap(const Bitmap: TBitmap): Boolean; var MyMap, BitmapMap: TBitmapData; I: Integer; begin if IsEmpty or Bitmap.IsEmpty then begin Result := IsEmpty and Bitmap.IsEmpty; Exit; end; Result := (Width = Bitmap.Width) and (Height = Bitmap.Height) and (PixelFormat = Bitmap.PixelFormat); if Result then begin if Map(TMapAccess.Read, MyMap) then try if Bitmap.Map(TMapAccess.Read, BitmapMap) then try for I := 0 to Height - 1 do if not CompareMem(MyMap.GetScanline(I), BitmapMap.GetScanline(I), MyMap.BytesPerLine) then begin Result := False; Exit; end; finally Bitmap.Unmap(BitmapMap); end; finally Unmap(MyMap); end; end; end;
  2. попробовать так WebBrowser1.EvaluateJavaScript();
  3. 1) В apple developer создать App ID 2) В iTunesConnect создать приложение 3) В xCode -> меню -> Developer Tools -> Application Loader Дальше думаю разберётесь
  4. Все используют деплой, вот попробуйте этот проект запустить у себя
  5. 1) Какие размеры у битмапа? 2) Как и кто заполняет или не заполняет Bitmap
  6. я бы сделал через браузер и html документ, как раз подойдёт для вашей задачи
  7. в FMX все делается с помощью стилей, нужно отредактировать стиль TGroupbox
  8. procedure LoadBitmapFromURL(const aURL: string; aBitmap: TBitmap; const aSuccess: TThreadProcedure = nil; const aError: TThreadProcedure = nil); var thread: TThread; begin thread := TThread.CreateAnonymousThread( procedure var HTTP: THTTPClient; Result: TMemoryStream; begin Result := TMemoryStream.Create; HTTP := THTTPClient.Create; try try HTTP.Get(aURL, Result); TThread.Synchronize(TThread.CurrentThread, procedure var aSourceBmp: TBitmap; begin aSourceBmp := TBitmap.Create; try aSourceBmp.LoadFromStream(Result); if not aSourceBmp.IsEmpty then begin aBitmap.SetSize(aSourceBmp.Width, aSourceBmp.Height); aBitmap.CopyFromBitmap(aSourceBmp); if Assigned(aSuccess) then aSuccess; end; finally FreeAndNil(aSourceBmp); end; end); except TThread.Synchronize(TThread.CurrentThread, procedure begin if Assigned(aError) then aError; end); end; finally FreeAndNil(Result); FreeAndNil(HTTP); end; end); thread.FreeOnTerminate := true; thread.start; end; в последнее время пользуюсь такой конструкцией
  9. само скачивание картинки HTTPClient.Get должен быть в потоке, а при успешном скачивании нужно делать синхронизацию с главным потоком и "вставлять" картинку в нужное место
  10. а что удивительного? вы загружаете в синхронизации, т.е. в главном потоке
  11. Внутри TComboBox используется TListBox Cамый простой способ кинуть на форму TListBox ПКМ Add TListBoxItem выбрать нужный стиль для Item (StyleLookup) ПКМ по Item Edit Custom Style меняем что нужно в стиле и сохраняем применяем новый стиль к Item
  12. const aColorNames: array [0 .. 3] of string = ('Black', 'Red', 'Yellow', 'Green'); aColors: array [0 .. 3] of TAlphaColor = (TAlphaColorrec.Black, TAlphaColorrec.red, TAlphaColorrec.Yellow, TAlphaColorrec.Green); procedure TForm1.DoItemApplyStyleLookup(Sender: TObject); var ColorObj: TShape; begin if TListBoxItem(Sender).FindStyleResource<TShape>('color', ColorObj) then ColorObj.Fill.Color := aColors[TListBoxItem(Sender).Tag]; end; procedure TForm1.Button1Click(Sender: TObject); var aItem: TListBoxItem; I: Integer; begin ComboBox1.DropDownKind := TDropDownKind.Custom; // uses FMX.Pickers; for I := Low(aColorNames) to High(aColorNames) do begin aItem := TListBoxItem.Create(ComboBox1); aItem.Parent := ComboBox1; aItem.Text := aColorNames[I]; aItem.Width := aItem.DefaultSize.Width; aItem.Height := aItem.DefaultSize.Height; aItem.StyleLookup := 'colorlistboxitemstyle'; aItem.StylesData['color.Fill.Color'] := aColors[I]; aItem.OnApplyStyleLookup := DoItemApplyStyleLookup; aItem.Tag := I; end; end; как-то так
  13. это к дизайнерам самсунг, меню давно заменяют на "последние запущенные приложения" или как вариант "выбор симкарты для звонка" вообще не вижу проблем с этой кнопкой, если есть обработайте, если нет её, то ничего не произойдёт
  14. её давно нет на многих телефонах, начиная с SDK 14 вроде Android отошел от этой идеологии. Но ничего вам не мешает её обработать, при её наличии
  15. проверьте деплой в билд-конфигах (Debug/Release), возможно забыли добавить.
  16. как понять список доступных кнопок? на счёт кнопки Home, все верно, так и должно быть
  17. Все оно верно даст Вы проверяли? У меня все отлично, стоит регион Казахстан, язык системы русский Результат кода - ru Не поленился и запустил симулятор, языки естественно менял на соответствующие
  18. согласен, так просто быстрей в коде явно указано куда их поместить, ошибки не будет @Major для просветления P.S. пользуйтесь кнопкой код "<>" для форматирования, я за вас все время это делать не буду
  19. нет, вы не поняли. не работает "диалог" выбора фото/картинки. Аналогичное нам писал Фабиано Силва с загрузкой фото в фейсбуке Ответ пока: никак
  20. Вас не смущает что это локальная переменная?
  21. http://blog.rzaripov.kz/2017/02/firebase-android-ios-2.html смотрите Delphi код, там есть получение DeviceID
  22. var MyRect: TRectF; begin MyRect := RectF(10, 10, 30, 30); if Canvas.BeginScene then try Canvas.Fill.Color := TAlphaColorRec.Red; Canvas.Stroke.Color := TAlphaColorRec.Black; Canvas.FillEllipse(MyRect, 1); Canvas.DrawEllipse(MyRect, 1); finally Canvas.EndScene; end; end; FillEllipse - заливка DrawEllipse - обводка
  23. var Line: TmapPolylineDescriptor; Points: TArray<TMapCoordinate>; begin SetLength(Points, 2); Points[0] := TMapCoordinate.Create(49.901493, 28.587838); Points[1] := TMapCoordinate.Create(49.897793, 28.585026); Line := TmapPolylineDescriptor.Create(Points); Line.StrokeColor := TAlphaColorRec.Darkgrey; MapView.AddPolyline(Line); end; прочитайте как работать с массивами
  24. консольные приложения, линукс сервера. в продакшене GUI не используется
×
×
  • Создать...