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

Dmitry Stolyarov

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

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

  • Посещение

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

    3

Активность репутации

  1. Like
    Dmitry Stolyarov получил реакцию от Ingalime в Получить фото из галереи через Intent   
    Рабочий код:
    procedure TForm1.HandleActivityMessage(const Sender: TObject; const M: TMessage); var RequestCode, ResultCode: Integer; Intent: JIntent; uri : Jnet_Uri; bitmap: JBitmap; surface: TBitmapSurface; begin if not(M is TMessageResultNotification) then exit; TMessageManager.DefaultManager.Unsubscribe(TMessageResultNotification, FMessageSubscriptionID); FMessageSubscriptionID := 0; RequestCode:=TMessageResultNotification(M).RequestCode; ResultCode:=TMessageResultNotification(M).ResultCode; Intent:=TMessageResultNotification(M).Value; if (ResultCode = TJActivity.JavaClass.RESULT_OK) and Assigned(Intent) then begin try uri:=Intent.getData; bitmap := TJImages_Media.JavaClass.getBitmap(SharedActivity.getContentResolver, uri); surface := TBitmapsurface.Create; JBitMapToSurface(bitmap,surface); Image1.Bitmap.Assign(surface); finally surface.Free; end; end;  
  2. Like
    Dmitry Stolyarov получил реакцию от Yarpda в Получить фото из галереи через Intent   
    Рабочий код:
    procedure TForm1.HandleActivityMessage(const Sender: TObject; const M: TMessage); var RequestCode, ResultCode: Integer; Intent: JIntent; uri : Jnet_Uri; bitmap: JBitmap; surface: TBitmapSurface; begin if not(M is TMessageResultNotification) then exit; TMessageManager.DefaultManager.Unsubscribe(TMessageResultNotification, FMessageSubscriptionID); FMessageSubscriptionID := 0; RequestCode:=TMessageResultNotification(M).RequestCode; ResultCode:=TMessageResultNotification(M).ResultCode; Intent:=TMessageResultNotification(M).Value; if (ResultCode = TJActivity.JavaClass.RESULT_OK) and Assigned(Intent) then begin try uri:=Intent.getData; bitmap := TJImages_Media.JavaClass.getBitmap(SharedActivity.getContentResolver, uri); surface := TBitmapsurface.Create; JBitMapToSurface(bitmap,surface); Image1.Bitmap.Assign(surface); finally surface.Free; end; end;  
  3. Like
    Dmitry Stolyarov отреагировална krapotkin в Разбор JSON с мультизапросом   
    arr:=SA(JSON); for i:=0 to arr.length-1 do   arr2:=arr.a[i];  
  4. Like
    Dmitry Stolyarov отреагировална GASCHE в Отображение картинок в ListView   
    Грузятся если заменить  if (FListViewUpdating) or (AAsyncResult.IsCancelled) then на  if (FListViewUpdating) or (AsyncResult.IsCancelled) then.
    AAsyncResult у меня NIL
  5. Like
    Dmitry Stolyarov отреагировална Евгений Корепов в Разбор JSON с мультизапросом   
    Мимо проходил. Вот вам код на php (собираем все данные в один массив и энкодим в json)
    $QueryArray = array( "SELECT ... FROM `...`;", "SELECT ... FROM `...`;", "SELECT ... FROM `...`;", "SELECT ... FROM `...`;", ); $Index = 0; $ResultArray = array(); foreach ($QueryArray as $query) { if ($mysqli_result = mysqli_query($DBLink, $query)) while ($row = mysqli_fetch_array($mysqli_result, MYSQLI_ASSOC)) $ResultArray[$Index][] = $row; $Index++; } $ResultJSON = json_encode($ResultArray, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); echo $ResultJSON;  
  6. Like
    Dmitry Stolyarov получил реакцию от Barbanel в Разбор JSON с мультизапросом   
    krapotkin, спасибо!
    Публикую, может кому-то пригодится..
    на стороне PHP:
    $query1 = "SELECT ... FROM `...`;"; $query2 = "SELECT ... FROM `...`;"; $query3 = "SELECT ... FROM `...`;"; $query4 = "SELECT ... FROM `...`;"; function GetValuesAsJson($query, $Link) { if ($DBResult = mysqli_query($Link, $query)) { $ResultArray = array(); $Index = 0; while ($row = mysqli_fetch_array($DBResult, MYSQLI_ASSOC)) { $ResultArray[$Index] = $row; $Index++; } $ResultJSON = json_encode($ResultArray, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); return $ResultJSON; mysqli_free_result($DBResult); } }; echo '{"Arr1":'. GetValuesAsJson($query1, $DBLink).', "Arr2":'.GetValuesAsJson($query2, $DBLink).', "Arr3":'.GetValuesAsJson($query3, $DBLink).', "Arr4":'.GetValuesAsJson($query4, $DBLink).'}'; mysqli_close($DBLink); на стороне delphi:
    xJS := SO(aJSON); with xJS.A['Arr1'] do // имя массива begin for j := 0 to length - 1 do begin xObj := O[j]; Memo1.Lines.Add(xObj.S['cities_name']); // собираем нужные данные ... end;  
  7. Like
    Dmitry Stolyarov отреагировална krapotkin в Разбор JSON с мультизапросом   
    вы просто без разделителей склеиваете три разных JSON-массива
    вам бы каждый из них описать отдельно. да и вообще принято логически законченные участки кода выделять в отдельные функции
    function GetValuesAsJson($query) {   ..... } тогда будет например
    '{"Arr1":'. GetValuesAsJson($query1). ',  "Arr2":'.GetValuesAsJson($query2).', "Arr3":'.GetValuesAsJson($query3).'}' ну и разбор полученного объекта например с помощью XSuperObject. Примеры есть на офсайте https://github.com/onryldz/x-superobject
  8. Like
    Dmitry Stolyarov получил реакцию от Alisson R Oliveira в Отображение картинок в ListView   
    Добрый день!
    Использую Ваш пример... и столкнулся с такой же траблой.. (в последнем приложенном файле та же трабла..)
    Подскажите, пжл, куда копать..
    procedure TForm1.FormCreate(Sender: TObject);
    var
      sUrl: string;
      i: integer;
      item:TListViewItem;
    begin
     with qLess do
      try
        if qLess.Active then Close;
        Open;
        while not eof do
         begin
          with ListView1 do
           begin
            Item:=listview1.Items.Add;
            Item.Text := qLessLESS_NAME.AsString;
            Item.Detail:= qLessLESS_DESC.AsString;
            Item.Data['URL'] := qLessIMG_URL.AsString;
            Item.Data['loading'] := 0; // даём знать, что можно загрузить картинку
           end;
           next;
         end;
      except
       //
      end;
     end;

    procedure TForm1.ListView1Paint(Sender: TObject; Canvas: TCanvas;
      const ARect: TRectF);
    var i:integer;
    begin
      for i := 0 to ListView1.Items.Count-1 do
      begin
        if (i >= 0) and (i < ListView1.Items.Count) then
        begin
         if  ListView1.Items.Bitmap.Image<>NIL then
          if (ListView1.Items.Data['loading'].AsInteger = 0) then
          begin
            ListView1.Items.Data['loading']:= 1;
            ListView1.Items.Bitmap.LoadFromUrlToListViewItem(ListView1.Items.Data['URL'].AsString, ListView1);
          end;
        end;
      end;
    end;
    { TBitmapHelper }
    procedure TBitmapHelper.LoadFromUrlToListViewItem(AUrl: string;
      AListView: TListView);
    var thread: TThread;
    begin
      thread := TThread.CreateAnonymousThread(
      procedure
      var
      NetHTTPClient: TNetHTTPClient;
      Result: TMemoryStream;
      begin
        Result := TMemoryStream.Create;
        NetHTTPClient := TNetHTTPClient.Create(nil);
        try
          try
            NetHTTPClient.Get(AUrl, Result);
            TThread.Synchronize(TThread.CurrentThread,
            procedure()
            var
            tempBitMap: TBitmap;
            begin
              tempBitMap := TBitmap.Create;
              tempBitMap.LoadFromStream(Result);
              if not tempBitMap.IsEmpty then
              begin
                self.Assign(tempBitMap);
                AListView.Paint;
              end;
            end);
            except
            Result.Free;
          end;
          finally
          NetHTTPClient.Free;
        end;
      end);
      thread.FreeOnTerminate := true;
      thread.start;
    end;
  9. Like
    Dmitry Stolyarov отреагировална osvirt в Unsupported media file   
    Реанимирую тему.
    Вылезла такая же ситуация, при очень странных обстоятельствах.
    Накануне вечером компилил проект - всё проигрывалось. Комп не выключался на ночь, IDE не закрывал, утром запускаю - ошибка.
    Что ещё страннее - скомпилированный и работавший вчера ехешник, лежащий в другой папке с другой копией mp3шного файла, тоже ругается.
  10. Like
    Dmitry Stolyarov отреагировална IVGSoft в Обработка анимированных GIF по рецепту китайского коллеги   
    В конце концов получилось исправить.
    Для interlaced гифок проблема была вообще пустяковая. Одна строчка не в том месте. А вот для optimized все оказалось несколько сложней, но в итоге теперь все гифки отображаются правильно.
    Пользуйтесь на здоровье!
    FMX.GifUtils.zip
  11. Like
    Dmitry Stolyarov отреагировална krapotkin в THTTPClient авторизация   
    Конечно можно. А что такое "авторизоваться" ?
  12. Like
    Dmitry Stolyarov получил реакцию от Barbanel в Убрать рамку TWebBrowser   
    т.к. нужна была статическая страница (по сути картинка) , то решил через скрины) 
×
×
  • Создать...