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

Лидеры

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

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

    Модераторы


    • Баллы

      4

    • Постов

      2 517


  2. AngryOwl

    AngryOwl

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


    • Баллы

      4

    • Постов

      394


  3. Andrey Efimov

    Andrey Efimov

    Модераторы


    • Баллы

      2

    • Постов

      842


  4. alxsev

    alxsev

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


    • Баллы

      2

    • Постов

      32


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

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

  1. AngryOwl

    TImage в Base64

    {$IFDEF ANDROID} function Encode_Stream( AStream: TStream ): string; var LStream: TMemoryStream; begin AStream.Position:= 0; LStream := TMemoryStream.Create; TNetEncoding.Base64.Encode( AStream, LStream ); LStream.Position := 0; Result := ReadStringFromStream(LStream, -1, IndyTextEncoding_8Bit); end; function Decode_Stream( enc_str: string ): TMemoryStream; var LStream: TStringStream; begin Result:= TMemoryStream.Create; LStream:= TStringStream.Create; LStream.WriteString( enc_str ); LStream.Position:= 0; TNetEncoding.Base64.Decode( LStream, Result ); end; {$ELSE} function Encode_Stream(AStream: TStream): string; begin AStream.Position:= 0; Result:= TIdEncoderMIME.EncodeStream(AStream); end; function Decode_Stream(enc_str: string): TMemoryStream; begin Result:= TMemoryStream.Create; TIdDecoderMIME.DecodeStream(enc_str, Result); end; {$ENDIF} function LoadBitmapFromStream(const AStream: TStream; const Bitmap: TBitmap): Boolean; var Bmp: TBitmapSurface; begin Result := False; Bmp := TBitmapSurface.Create; try Bmp.Assign(Bitmap); Result := TBitmapCodecManager.LoadFromStream(AStream, Bmp); Bitmap.Assign(Bmp); finally FreeAndNil(Bmp); end; end; function SaveBitmapToStream(const AStream: TStream; const Bitmap: TBitmap; const Extension: string; SaveParams: PBitmapCodecSaveParams = nil): Boolean; var surf: TBitmapSurface; begin Result := False; surf := TBitmapSurface.Create; surf.Assign(Bitmap); try Result := TBitmapCodecManager.SaveToStream(AStream, surf, Extension, SaveParams); finally surf.Free; end; end; function Bitmap_To_Base64(bmp: TBitmap; const AQuality: Integer = 85): string; var eStream: TMemoryStream; SaveParams: TBitmapCodecSaveParams; begin eStream:= TMemoryStream.Create; SaveParams.Quality := AQuality; SaveBitmapToStream(eStream, bmp, '.jpg', @SaveParams); Result:= Encode_Stream(eStream); eStream.Free; end; function Bitmap_From_Base64(b64_string: string): TBitmap; var eStream: TMemoryStream; begin Result := TBitmap.Create; eStream := Decode_Stream(b64_string); if Assigned(eStream) then try eStream.Position := 0; LoadBitmapFromStream(eStream, Result); finally eStream.free; end; end; Скинул как есть. На цэ желания переводить нет, так-что смотрите сами... Надеюсь разберетесь
    4 балла
  2. Платформа: Android Тип устройства: смартфон, планшет Разрешение экрана: любое Описание: Цель игры удалить как можно больше квадратиков на поле. Два и более квадратов одного цвета можно удалить на поле, когда они находятся рядом друг с другом. Они исчезают с доски и все остальные камни перемещаются вниз и влево, занимая освободившиеся поля. Если ходов больше нет - игра закончится. В меню игры есть обычная игра и игра на время: Новая игра - Классическая Кликомания. Удаляем кубики на поле. В игре после последнего хода автоматически начинается новая игра. Игра на время - Игра с уровнями прохождений на время. За определенное время нужно набрать определенное количество очков. После набора этого количества вы переходите на новый уровень, где время меньше а набрать очков нужно больше. Чем больше уровень, тем сложнее набирать очки. В настройках игры выбирается размер игрового поля, цвета ячеек,звуковые эффекты, а так же наличие специальных камней и бомбочек. Разрешения программы - только доступ в интернет для показа рекламного баннера внизу приложения. Он не мешает игровому процессу! Cсылки на Google Play Версия игры с рекламой: Ссылка Платная версия игры без рекламы: Ссылка Изображения:
    2 балла
  3. вот хорошая документация по андроид апи для создания полноценного плеера. показано как использовать кастомные звуки. а для чего нужны стандартные звуки?
    2 балла
  4. zairkz

    [Android] Как свернуть приложение?

    TAndroidHelper.Activity.moveTaskToBack(true); отправляет приложение в фон, где оно продолжает работать. и при повторном открытие открывается программа так как будто она и не закрывалась.
    1 балл
  5. думаю, просто связь с сервером нужно устанавливать самому, по кнопочке, а не оставлять на совести загрузчика формы при старте любые серверные подключения должны быть Active=false!
    1 балл
  6. Во первых все зависит от размеров формы Во вторых тень сделанная с помощью PNG работает быстрей, чем тень отрисованная эффектами FMX В третьих чисто теоретически работа со стилями, тем более 9.png, будет кушать больше ресурсов чем залить область через FillRect Я бы реализовывал первым вариантом (более гибкий и простой в реализации)
    1 балл
  7. Интерфейс. Кратко: Нерациональное использование места на некоторых скринах. Теперь подробнее, мне не нравится когда Табы в несколько строк, может быть стоило бы придумать что-то с МультиВью и вынести туда основные пункты меню(Отметки и История). Контроллы на третьем скрине занимают 50% экрана - не хорошо, например, вы выделили целую строку под два слова: "От" и "До", при этом говорите, что там может выводиться море табличной информации... Пользователь ведь, ставит приложение не для того, чтобы любоваться контроллами занимающими половину экрана, ему нужно увидеть как можно больше информации... Тоже мнение и насчёт второго скрина + выше уже вам подсказали насчёт дневных отметок. А 4 скрин - это меню Сервис? Зачем там две кнопки "Закрыть"? Просили посоветовать, а получилось покритиковал немного... Не претендую на лучшие мысли в плане интерфейса, но считаю, что он перегружен контроллами. Если что, обидеть не хотел... p.s. В маркете, вроде видел подобные приложения, попробуйте посмотреть их и оценить, возможно получится почерпнуть что-то уникальное/новое/более правильное для вашего приложения. "Хочешь сделать хорошо - делай лучше, чем у конкурентов" (c)
    1 балл
  8. дневная отметка. выдавалась бы фотка кто вошел/вышел ну и так доп инфа: должность. кабинет где работает.
    1 балл
  9. ну так нужно отделять историю от дневных отметок. Дневные отметки можно показать как-то красиво, а история в таблице
    1 балл
  10. Вот так: uses Androidapi.JNI.GraphicsContentViewText, Androidapi.Helpers; procedure TForm2.Button1Click(Sender: TObject); var Intent: JIntent; begin Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_MAIN); Intent.addCategory(TJIntent.JavaClass.CATEGORY_HOME); Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); SharedActivity.startActivity(Intent); end; но на 4.4 поведение немного другое... (Выскакивает табличка с выбором лаунчера). Хотя не известно на всех устройствах так или только у меня... В справке написано, что должен открываться домашний экран, по всей видимости, тем, у кого стоит несколько Лаунчеров даётся выбор.
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...