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

beklexx

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

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

  • Посещение

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

  1. procedure TFPreOrder.ListViewFill(LV: TListView; FDSource: TFDQuery; TextField, DetailField, TagField: string; IsClear: boolean);
    var i, index: integer;
        item: TListViewitem;
    begin
      if LV.Selected <> nil
        then index:= LV.Selected.Index
        else index:= -1;
      if FDSource.IsEmpty then
        begin
    //      ShowMessage('Нет данных!');
          LV.Items.Clear;
          exit;
        end;
      if IsClear then LV.Items.Clear;
      try
        LV.BeginUpdate;
        for i:= 1 to FDSource.RecordCount do
          begin
            FDSource.RecNo:= i;
            item:= LV.Items.Add;
            item.Text:= FDSource.FieldByName(TextField).AsString;
            item.Detail:= FDSource.FieldByName(DetailField).AsString;
            item.Tag:= FDSource.FieldByName(TagField).AsInteger;
          end;
      finally
        LV.EndUpdate;
      end;
      if index = -1 then exit;
      if LV.Items.Count >= index then LV.ItemIndex:= index;
    end;

    я обычно так заполняю... ну TFDQuery на TFDMemTable только сменить

     

    зы. ну и заполнение 

    ListViewFill(ListView1, tbPreOrder, 'Name', 'Qty', 'GoodId', True);
  2. приложение запускается но карта серым фоном и не отображается

    при запуске приложения не из под студии а с устройства, сервис google maps не просит обновления?

    было у меня как то ... исправилось обновлением сервиса

  3. так мне скорость не важна... мне требуется определить изменил ли пешеход своё местоположение на х метров и снять координату... а то сейчас по таймеру, а оптимальное время выставить сложно ... ибо и батарейку жаль и за 5 мин  может на такси много х метров проскочить

  4. Не знаю как на XE8, но на XE10 (на стороне получателя Datasnap либо Android) спасает пропуск полученной в стриме картинки через следующую процедуру:

    procedure CopyStreamToMemoryStream(const ASource: TStream; var ADest: TMemoryStream; const Rewind: Boolean = True);
    const
      LBufSize = $F000;
    var
      LBuffer: PByte;
      LReadCount: Integer;
    begin
      GetMem(LBuffer, LBufSize);
      ADest.Clear;
      try
        repeat
          LReadCount := ASource.Read(LBuffer^, LBufSize);
          if LReadCount > 0 then
            ADest.WriteBuffer(LBuffer^, LReadCount);
        until LReadCount < LBufSize;
      finally
        FreeMem(LBuffer, LBufSize);
      end;
      if Rewind then
        ADest.Seek(0, TSeekOrigin.soBeginning);
    end;
    

    взято отсюда http://codeverge.com/embarcadero.datasnap/howto-send-huge-data-via-datasnap/1095276

  5. на XE5 это работало... где нашёл не помню 

    uses FMX.Platform, FMX.VirtualKeyboard ...
    
    procedure TFSale.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
    var FService : IFMXVirtualKeyboardService;
    begin
      if Key = vkHardwareBack then
        begin
          TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(FService));
          if (FService <> nil) and (vksVisible in FService.VirtualKeyBoardState)
            then
              begin
                // Back button pressed, keyboard visible, so do nothing...
              end
            else
              begin
                // Back button pressed, keyboard not visible, lets exit the app...
                if MessageDlg('Выйти без сохранения?', ...
                  then
                    begin
                      FSale.Close; // Back button pressed CONFIRMED...
                    end
                  else
                    begin
                      Key := 0; // Back button pressed IGNORED...
                    end;
              end;
        end;
    end;
    
  6. Здравствуйте.

    Темы с данным компонентом ещё нету, а хотелось бы узнать как с ним работать.

     

    Хотел сделать что то вроде трекера, снимающего координаты в случае если есть определённое движение и заинтересовался этим компонентом, но не нашёл толковой инфы. Демка по нему под андроидом что то тоже не очень понятна. Не хотелось бы иметь постоянно включённый LocationSensor, ибо думаю аккумулятор спасибо не скажет. 

     

    Никто с ним не сталкивался на практике?

     

  7. Есть datasnap сервер вытаскивающий данные с MS SQL сервера через ADODataset. Вот Метод:

    function TServerMethods1.GetDataset(SQL: string): TDataset;
    begin
      if sel.Active then sel.Close;
      sel.CommandText:= SQL;
      sel.Open;
      Result:= sel;
    end;
    

    Так вот, если в возвращаемом датасете учавствуют поля с типом money, то на android клиенте при открытии ClientDataset (ClientDataset -> DatasetProvider -> SQLServerMethod -> SQLConnection) даже с небольшим количеством строк, можно сходить покурить, времени хватит ((.

    Это только у меня так? Может кто проверить?

    Проверял на XE5 и DX10.

     

    Пока спасает топорный метод, конвертирую на сервере в строку и обратно в currency на клиенте.

    Без конвертации открытие 200-300 строк где-то минута, с конвертацией 1000+ строк миллисекунды.

  8. Здравствуйте.

    Помогите пожалуйста с одним вопросом.

    Есть приложение где форма с компонентом MapView вызывается через show. Так вот, если закрыть эту вызванную форму приложение падает.

    При этом, если на OnShow формы с компонентом выставлять MapView.Visible:= True, а на OnClose MapView.Visible:= False то всё работает нормально. Но, так как это не указано в документации, возникает вопрос, как правильно с этим бороться?

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