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

master webs

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

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

  • Посещение

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

    6

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

  1. 12 минуты назад, Vitaldj сказал:

    Ну, то есть решилась твоя проблема?

    да оказалось процедура которой я получал имя файл так как оно содержало еще путь по каталогу на сервере оставляла /img_resurs.jpg (слеш)

    винда, мак и ведро ошибку не выдавали и спокойно сохраняли картинку  яблоко увидело ) 

  2. Только что, Vitaldj сказал:

    Стоп! Причем тут json???? saveToFile вы делаете контейнеру, который содержит картинку. Не знаю как в iOs, в windows я качаю файл картинки в поток, а из потока сохраняю как картинку.

    пример как сохраняю json

    вот так пытаюсь сохранить изображение

    LItem.Bitmap.SaveToFile(TPath.Combine(TPath.GetDocumentsPath,img));

    картинка загружена с интернета в  lisview item 

     

  3. все правильно поняли для глобальных настроек я  пишу так

    DataModule1.setings.SaveToFile(TPath.GetDocumentsPath + TPath.DirectorySeparatorChar +'seting.json');

    и все прекрасно работает  но не ваш ни мой вариант не симуляторе  сохранять картинки отказывается 

  4. Добрый день встал вопрос сохранения картинки в файл для последующего использования в целях економии мобильного трафика и времени загрузки

    на андроиде винде и маке проблем нет

    на телефона IOS  что не пробовал постояно ругает на не возможность сохранить картинку в файл каким должен быть пусть при сохранении картинки в папку tmp возможно нужны дополнительные настройки приложения

  5. попробуйте так

    SELECT c.dataoff, 
    (SELECT b.dataon FROM regesteron as b WHERE b.idpkey = c.idpkey) as dataon 
    FROM regesteroff as c

    на 100% не уверен писал на ходу может с полями что напутал

  6. 3 минуты назад, Rusland сказал:

    Да, хотелось бы разобраться почему обычное присвоение через битмап работает не так как положено.

    получилось вот таким способом

    IItem:=LItem.Objects.FindDrawable('Image2') as TListItemImage;
                   if IItem<>nil then
                   IItem.Bitmap:=Image1.Bitmap;
                   if aJSObjArr.GetValue('image').Value<>'null' then
                    begin
                    ms := LoadWebImage(aJSObjArr.GetValue('image').Value);
                    LItem.Bitmap.LoadFromStream(ms);
                    IItem.Bitmap:=LItem.Bitmap;
                    ms.Free;
                    end;

     

  7.  

    20 минут назад, Rusland сказал:

    У меня было также с Objects.FindDrawable('Image2'), пришлось переделать на присвоении картинки через ImageList (правда в моем случае было всего 2 картинки).

    Кстати, Zuby еще писал что надо проверять существование объекта:

    
    IItem:=Listview1.Items[k].Objects.FindDrawable('Image2') as TListItemImage;
    if IItem<>nil then

     

    проверку объекта уже научен делать )  были неприятности 

    с ImageList  не знаю как теперь быть ресурсов будет больше кушать раза в два 

  8. Добрый день загружаю список товаров с сайта планирую изображения  сохранять на устройстве пока тестирую без сохранения  

    перебираю json заполняю списком товаров

    и подгружаю изображения

    function LoadWebImage(urls: string) : TMemoryStream;
    var
    IdHTTP: TNetHTTPClient;
    begin
      IdHTTP := TNetHTTPClient.Create(nil);
      Result := TMemoryStream.Create;
      try
        idhttp.Get (url+'/'+urls, Result);
        Result.Position := 0;
      finally
       idhttp.Free;
      end;
    end;

    вызов функции

     ms := LoadWebImage(aJSObjArr.GetValue('image').Value);
    TListItemImage(Objects.FindDrawable('Image2')).Bitmap.LoadFromStream(ms);
     ms.Free;

    проблема в следующем

    во всех позиция загружается одна и таже картинка

    при просмотре на винде и маке грузит быстро

    на симуляторе  заметил что при больших списках 

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

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

  9. 29 минут назад, AndroidHalfNoob сказал:

    Не дало результата. На скрине русское название все состоит из ???????

     

    <?php
    $good_text="текст документа";
    $zagolovok=iconv("UTF-8", "WINDOWS-1251//IGNORE", "название");
    $bd = fopen ($zagolovok.'.txt','w') or die("Не могу открыть файл"); 
    fwrite($bd, $good_text);
    ?>

    рабочий пример запустите через браузер в корне должен появится текстовый файл если не заработает ковыряйте кодировку

    <?php
    
    $text = "Текст на кирилице";
    
    echo 'Original : '.$text;
    echo 'TRANSLIT : '.iconv("UTF-8", "WINDOWS-1251//TRANSLIT", $text);
    echo 'IGNORE   : '.iconv("UTF-8", "WINDOWS-1251//IGNORE", $text);
    echo 'Plain    : '.iconv("UTF-8", "WINDOWS-1251", $text);
    ?>

    через браузер тоже можно смотреть

    кодировка может быть WINDOWS-1251, ASCII,ISO-8859-1

  10. 3 минуты назад, AndroidHalfNoob сказал:

    один нюанс. Фото грузится с телефона, а там Андройд. Разве у Андройда кодировка cp1251?

    вы смотрели с андроида уходит  в нормальном виде ?

    кирилица чесно говоря  опасная штука на сервере я делал запросы на сервер для поиска через api кирилица с пробелами так вот без StrToJURI(Url) вот такой конструкции в делфи ничего не вышло 

    а кодировка сервера может все ломать на стадии записи в файл 

    если имя передаете правильно то косяк только на сервере вам проверить  нужно всеголиш что где и как отправляет

  11. 3 часа назад, AndroidHalfNoob сказал:

    Вот весь текст. больше там ни чего нет.

    <?php
    $name=$_FILES['uploadfile']['name'];
    if ( copy($_FILES['uploadfile']['tmp_name'],"Avatari/".basename(iconv("utf-8", "cp1251", "$name")))) print "ok" ;
    else print "no" ;
    ?>

    попробуйте так только файл обязательно в кодировке utf-8 

    и многое зависит от ос на сервере какая стоит универсального решения нет

     

    P/S и пробуйте передать имя файла отдельным параметром  файлом уже после перезагрузки перейменовать проще отловить будет косяк

  12. Добрый день в приложении использую  5 фреймов

    суть вопроса

    мне нужно создавать их всех один раз при повторном обращении менять  видимость фрейма все скрываю оставляю один нужный (при переходе по пунктам меню)

    сейчас использую процедуру взятую с форума

    procedure TForm1.TabItemNext(ANextFrame: TFrameClass);
    begin
      FFrame.DisposeOf;
      FFrame := nil;
      FFrame := ANextFrame.Create(Self);
      FFrame.Parent := Panel1;
      FFrame.Name:=ANextFrame.UnitName;
      FFrame.Align := TAlignLayout.Client;
      MultiView1.HideMaster;
    end;

    пробовал вариант создавать каждый фрейм в отдельном контроле и потом просто менять видимость самого контрола а не фрейма  но такой вариант не подходит так как мне  в нужный момент нужно удалить все фреймы  кроме 1

    подскажите как можно поступить

     

  13. 14 минуты назад, AndroidHalfNoob сказал:

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

    Сделал по второму варианту. как теперь это применить к ListView?

    Просто я не работал с компонентом StyleBook

    рабочий файл загрузите в StyleBook

    listview.style.zip

  14. Только что, AndroidHalfNoob сказал:

    подскажи как этот текстовый файл использовать в проекте? у меня пока так и не получается раскрашивать Итемы в цвета как мне надо.

    можно изменить расширение с txt на .style и загрузить в StyleBook должно сработать

    если не сработает то StyleBook сохранить в фал стилей  открыть текстовым редактором и добавить  весь текст в конец файла

  15. 1 минуту назад, Rusland сказал:

    Применил стиль и цвет выделенного перестал меняться на стандартный ) Уже хорошо. Осталось понять как поменять на свой. 

    Цвет разделительной черты меняется с помощью замены frame - color в стиле.

     

    выделеный итем selection 

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

    Раскрашиваю ListView в черный цвет, цвет текста серый. Делаю это с помощью изменений от Zuby в FMX.ListView.pas в процедуре DrawItemsFill

    
              // отрисовываем кастомный цвет...........................................
              // procedure TListViewBase.DrawItemsFill(const StartItem.................
              if TListViewItem(ListItem).Data['aUseCustomColor'].AsBoolean then
                FBrush.Color := TListViewItem(ListItem).Data['aCustomColor'].AsInteger;
              // ......................................................................

    При выделении Item его цвет становится светло-серым. Как изменить цвет выделяемого itema на черный?

    Могу изменить цвет текстовых элементов в выделенном item так:

    
    procedure TFrmMain.LsvItemClick(const Sender: TObject;  const AItem: TListViewItem);
    var
      i: integer;
    begin
      TListItemText(AItem.Objects.FindDrawable('TxtNum')).SelectedTextColor:=$FF1E1E1E; // серый
      TListItemText(AItem.Objects.FindDrawable('TxtAdr')).SelectedTextColor:=$FF1E1E1E; // серый
    end;

    А как изменить backround выделенного элемента так и не разберусь :(

    Если это делается стилем, то покажите пожалуйста пример. 

    стили для ListView использую в своем приложении кстати они взяты со стилей  для вин 10  и работают на всех платформах единственое с чем не разобрался  пока как сменить цвет разделительной черты

    listview.txt.zip

  17. В 06.05.2016 в 10:01, AndroidHalfNoob сказал:

    До делал процедуру загрузки фото с телефона на сервер, но выяснился интересный момент. Если название для фото задаю в латинской раскладке, то все нормально и сохраняется и отправляется, если задаю имя файла в русской раскладке, то на телефоне файл сохраняется нормально и отображаются русские буквы, а вот  на сервере создается файл и все русские буквы пишутся знаками "?". Тут уже встречал функцию вроде как перевода из одной кодировки в другую, попробовал несколько вариантов но без результатно.

    попробуйте посмотреть  в снифере http соеденений (HTTP ANALYZER  как вариант) на винде что там в строке  если отправляет нормально то проблемы точно со скриптом возможно даже кодировка самого серверного скрипта ANSI/UTF-8

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

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