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

Roma77751

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

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

  • Посещение

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

    2

Сообщения, опубликованные Roma77751

  1. В 15.09.2016 в 16:15, Brovin Yaroslav сказал:

    Эта официальная статья вам, однозначно, поможет: Inter-App Communication

     

    не хотелось бы новую тему поднимать, но никак не могу разобраться с намерением позвонить в IOS. Что то в статье ничего не накопал... и инфы мало по этой теме... в общем оч нужна помощь

  2. 59 минут назад, dnekrasov сказал:

    Давайте

    
      TInternalColor = packed record
        case Integer of
          0:
    {$IFDEF BIGENDIAN}
            (A, R, G, B: System.Byte);
    {$ELSE}
            (B, G, R, A: System.Byte);
    {$ENDIF}
          1:
            (Color: TAlphaColor);
      end;
    
    ...
    
      TGifRGB = packed record
    {$IFDEF BIGENDIAN}
              B, G, R: Byte;
    {$ELSE}
              R, G, B: Byte;
    {$ENDIF}
      end;
    
    ...
    
      procedure ReadPalette(Stream: TStream; Size: Integer; var APalette: TPalette);
      var
        RGBEntry: TGifRGB;
        I: Integer;
        c: TInternalColor;
      begin
        SetLength(APalette, Size);
        for I := 0 To Size - 1 Do
        begin
          Stream.Read(RGBEntry, SizeOf(RGBEntry));
          with APalette[I] do
          begin
            R := RGBEntry.R;
            G := RGBEntry.G;
            B := RGBEntry.B;
            A := $FF;
          end;
        end;
      end;

    Попробуйте заменить объявления типов и чтение палитры (то, что Вы меняли). На винде в таком виде работает правильно. Если на Android тоже будет всё ок, то можно считать, что теперь всё в порядке.

    попробовал. результат отрицательный. Опять все синее... на андроид

  3. 13 минут назад, dnekrasov сказал:

    А Вы под Windows проверили? Теперь у меня (с Вашим исходником) цвета R и B поменялись. Да и вообще, что-то мне совсем непонятна такая запись

    
     B := RGBEntry.R or (RGBEntry.R shl 8);

    т.е. тут байту присваивается двухбайтное значение.

    Да и проблема, как мне кажется, здесь в том, что при объявлении TInternalColor учитывается порядок байт (Big-Endian или нет), а вот в объявлении TGifRGB - нет. 

    под виндой не проверял. Но так и думал что цвета поменяются, этот код(неисправленный) под виндой норм все отображал, а под андроидом криво....с одним и тем же кодом...получается если мы тупо в коде поменяли цвета, то сейчас наверное под виндой все синее...? у меня конкретно была проблема с андроидом, это решение видимо не самое оптимальное, но меня устраивает....если есть желание давайте попробуем разобраться с этим...я за!)

  4. 34 минуты назад, Tumaso сказал:

    А исправленный вариант под Windows корректно ли отображает вашу проблемную гифку???

    я не проверял, мне надо под андроидом чтобы работало....под виндой корректно отображались эти гифки и с тем кодом...без исправлений

  5. В 23.08.2016 в 04:55, Martifan сказал:

    доброго времени сутки 
    подскажите пожалуйста как запустить GIF файл? чтобы анимацию показывала

    заранее спасибо

     

    подключаешь исправленный модуль

    Gif: tgifplayer; // объявляешь переменную


    procedure TForm1.FormCreate(Sender: TObject);
    begin
     Gif:= TGifPlayer.Create(Self);//создаешь

     Gif.Image := Image1;//указываешь где будет отображаться gif-ка


      Gif.LoadFromFile(Tpath.Combine(TPath.GetDocumentsPath, 'filename'));// указываешь путь к файлу в данном случае на андроид папка assets\internal...если файл во внешнем доступе(просто \assets)пишешь путь Gif.LoadFromFile(Tpath.Combine(TPath.GetSharedDocumentsPath, 'filename')); 

       gif.Play;//воспроизводишь


    end;

      

  6. В 04.05.2018 в 15:57, Вадим Смоленский сказал:
    2 часа назад, IVGSoft сказал:

    Не помню, чтобы с таким сталкивался. Возможно где-то ошибка в исходниках FMX. Похоже на то, что перепутаны местами каналы R и B

     

     

  7. ПРОБЛЕМА РЕШЕНА! Всем спасибо, отдельное спасибо dnekrasov и IVGSoft, натолкнули на верную мысль. Только менять переменные надо было тут 

     Begin
          Stream.Read(RGBEntry, SizeOf(RGBEntry));
          With APalette do
          begin
            B := RGBEntry.R or (RGBEntry.R shl 8);
            G := RGBEntry.G or (RGBEntry.G shl 8);
            R := RGBEntry.B or (RGBEntry.B shl 8);
            A := $FF;
          end;

     видимо китайцы что то напутали...<em><span class=?"> Прикрепляю исправленный исходник.

    FMX.GifUtils.rar

    Screenshot_2018-11-27-18-51-20.png

    Screenshot_2018-11-27-18-52-18.png

  8. 16 часов назад, dnekrasov сказал:

    Точно не скажу, но мне кажется, что проблема в объявлении TInternalColor. По идее, должно быть так:

    
      TInternalColor = packed record
        case Integer of
          0:
            (
            {$IFDEF BIGENDIAN}
              A, R, G, B: Byte;
            {$ELSE}
              B, G, R, A: Byte;
            {$ENDIF}
            );
          1:
            (Color: TAlphaColor;
            );
      end;

    Возможности проверить нет, но попробуйте изменить - должно помочь.

    в коде было так:

      TInternalColor = packed record
        case Integer of
          0:
            (
    
    {$IFDEF BIGENDIAN}
              R, G, B, A: Byte;
    {$ELSE}
              B, G, R, A: Byte;
    {$ENDIF}
            );
          1:
            (Color: TAlphaColor;
            );
      end;
    не совсем понял, все же по сути одинаково или я чего то не понимаю... ну я поменял на ваш код все равно все синее
  9. 13 часов назад, CyberStorm сказал:

    Кстати сейчас сайт китайца отлично открывается :) Китайцы вообще молодцы, и делфи самые первые ломают и кряки делают и модули всякие :) 

    Да.. по китайски но делают? 

  10. Только что, dnekrasov сказал:

    Точно не скажу, но мне кажется, что проблема в объявлении TInternalColor. По идее, должно быть так:

    
      TInternalColor = packed record
        case Integer of
          0:
            (
            {$IFDEF BIGENDIAN}
              A, R, G, B: Byte;
            {$ELSE}
              B, G, R, A: Byte;
            {$ENDIF}
            );
          1:
            (Color: TAlphaColor;
            );
      end;

    Возможности проверить нет, но попробуйте изменить - должно помочь.

    утром протестирую отпишусь спасибо

  11. Только что, FREEFAR сказал:

    Если честно сам не сталкивался. Может кто из комьюнити подскажет. Но по счет скул Лайта - на мой взгляд это пока лучшая схема. в ней и кеш можно хранить и зашифровать можно

     

    Скорей всего так и будет, помучаюсь еще пару дней и вспомню твой совет?....

  12. 18 минут назад, FREEFAR сказал:

    Рома, реально рассмотри варик работы с SQL lite& ЧЕрез пару месяцев работы с этой бд сам будешь рад профиту.

    я от баз настолько далек, что думаю много времени уйдет на освоение(((в аксесе как то все понятно, я и управление под него написал на сервере...тупняк заключается в том что у меня не хватает мозгов осуществить доступ к ней из под андроид клиента должным образом. Поэтому пока решил передавать при подключении клиента базу по хттп если в ней были изменения-клиент принял сделал что нужно отправил  ответ... база будет редко обновляться, поэтому думаю прокатит такой вариант.... Может колхозно, но на более пока не хватает знаний... хочу пока так попробовать а дальше буду заниматься "улучшайзингом") ....и сходу траблы не отображается база на телефоне хоть убей....сейчас проверяю путь к базе...у меня  так путь определяется p:=TPath.Combine(TPath.GetDocumentsPath, '1.mdb');  попробую вручную указать...

     

    почему задал вопрос на форуме, хотел уточнить точно ли можно с ней работать из под android, а то может я бьюсь в стенку вместо дверей...

  13. Друзья доброго времени суток! Ребят подскажите плз, облазил форумы что-то не нашёл инфу, видимо access'ом вообще никто не пользуется или его нельзя использовать в андроиде...в общем ситуация такая: база данных в access загружена на телефоне. Нужно просто отобразить Ее в гриде... я сделал так:

    добавил на форму dbdemosconnection(вкладка firedac),fdquery, грид и кнопку. В fdquery прописал sql запрос и с помощью live bindings соединил его с гридом.(в таком раскладе если прописать путь в dbdemosconnection под виндой все работает-проверил. Далее по  нажатию кнопки dbdemosconnection.params.database:=путь к файлу на телефоне. Ну и fdquery.active:=true. В итоге приложение просто вылетает когда fdquery.active пытается перейти в значение true... в чем проблема? На андроиде нельзя отобразить access базу или я что-то делаю не так? 

     

  14. Я не особо разбираюсь, но чтобы делфи не материлась сделал так            

    MergeBitmap(aFrames.Bitmap, aDisplay, Bounds(0,0,aframes.Bitmap.Width,aframes.bitmap.Height),aFrames.FPos.X, aFrames.FPos.Y);

    так компилируется, но все все равно синее<em><em><em><em><em>?</em></em></em></em></em>

  15. 53 минуты назад, IVGSoft сказал:

    Конкретней можно? Какую ошибку выдает? Какая версия Дельфи?

    Delphi XE7 

    [dcc32 Hint] FMX.GifUtils.pas(246): H2077 Value assigned to 'MoveBytes' never used
    [dcc32 Warning] FMX.GifUtils.pas(418): W1000 Symbol 'Seek' is deprecated
    [dcc32 Warning] FMX.GifUtils.pas(428): W1000 Symbol 'Seek' is deprecated
    [dcc32 Warning] FMX.GifUtils.pas(434): W1000 Symbol 'Seek' is deprecated
    [dcc32 Warning] FMX.GifUtils.pas(473): W1000 Symbol 'Seek' is deprecated
    [dcc32 Error] FMX.GifUtils.pas(683): E2003 Undeclared identifier: 'Bounds'
    [dcc32 Error] FMX.GifUtils.pas(698): E2003 Undeclared identifier: 'Bounds'

    [dcc32 Fatal Error] Unit1.pas(7): F2063 Could not compile used unit 'FMX.GifUtils.pas'
    Failed

  16. 2 часа назад, FREEFAR сказал:

    Я тоже столкнулся с бедой кривых цветов. Но у меня не было обязательной задачей использовать GIF поэтому просто отказался от идеи

    Печаль... может кто сможет на форуме разобраться с кодом... гифки нужны?

  17. есть у кого нибудь мысли по этому поводу? jpg отображается норм, gif без красной цветовой гаммы...только на Android...на win все отображается корректно....

  18. 5 часов назад, ENERGY сказал:

    Попробуйте этот же модуль, только с исправленными багами.

    http://fire-monkey.ru/topic/5029-обработка-анимированных-gif-по-рецепту-китайского-коллеги/  

     

    исправленная версия выдает ошибку, я ошибку в коде поправил насколько сам смог понять что там происходит, но на цвете это не отразилось совсем...все по прежнему синее((((блин в чем дело...это только у меня чтоли так?

  19. В 20.06.2018 в 15:12, IVGSoft сказал:

    В конце концов получилось исправить. :)

    Для interlaced гифок проблема была вообще пустяковая. Одна строчка не в том месте. А вот для optimized все оказалось несколько сложней, но в итоге теперь все гифки отображаются правильно.

    Пользуйтесь на здоровье!

    FMX.GifUtils.zip

    Доброго времени суток! в твоем коде делфя ругается на эту строчку

    "  MergeBitmap(aFrames[Index].Bitmap, aDisplay, aFrames[Index].Bitmap.Bounds, aFrames[Index].FPos.X, aFrames[Index].FPos.Y);"

    а конкретно на" aFrames[Index].Bitmap.Bounds"

    подскажи что не так плз...чет не могу разобраться

  20. В 27.03.2018 в 20:24, FREEFAR сказал:

    кому интересно кто искал как воспроизвести GIF на Image

    китайский брат постарался))

    http://www.raysoftware.cn/?p=559

    на Win и Andriod все четко

    Доброго времени суток! Друзья подскажите плз, почему гифки по этому коду отображаются без красной цветовой гаммы??? Короче гифки все синие... а jpeg норм отображаются... очень нужно подскажите в чем дело...

    image.jpg

  21.  

     

    FMX тут ни при чем. Возможно, вашему приложению не хватает каких-то разрешений.

     

    Где можно это посмотреть?

    P.S. спасибо за помощь. 

     

     

    вопрос снимаю,нашел и поставил tmsfmxwebbrowser,пока все работает. Кстати TMS Pack for FireMonkey есть на codmasters.ru, если кто не найдет пишите ссылку кину.

×
×
  • Создать...