Jump to content

Recommended Posts

Posted

На форме есть TUnimCarousel, которая наполняется картинками в событии FormShow.

Но потом пользователь может удалить и загрузить другие картинки и карусель нужно обновить. Я выполняю ту же процедуру, которая сперва удаляет все TUnimCarouselPage с дочерними картинками, а потом снова наполняет.

И вот тут проблема. Я вижу, что карусель наполнена и можно листать, но все страницы (TUnimCarouselPage) при пролистывании пустые.

Я так подразумеваю, что в браузер нужно послать что-то для обновления?

Или я неправильно что-то делаю.

Вот процедура наполнения карусели:

procedure PhotosLoadImages;
var
  i: Integer;
  sPath, s: string;
  LList: TStringDynArray;
  UnimImage: TUnimImage;
  UnimCarouselPage: TUnimCarouselPage;
begin
  if carouselPhotos.PageCount > 0 then
    for i := pred(carouselPhotos.PageCount) downto 0 do
      carouselPhotos.Pages[i].Destroy;

    sPath := GetCurrPhotoPath;
    LList := GetListDocs(sPath);

    if Length(LList) = 0 then
      exit;

    for s in LList do
    begin
      UnimCarouselPage := TUnimCarouselPage.Create(carouselPhotos);
      UnimCarouselPage.Parent := carouselPhotos;
      UnimCarouselPage.Carousel := carouselPhotos;


      UnimImage := TUnimImage.Create(UnimCarouselPage);
      UnimImage.Parent := UnimCarouselPage;
      UnimImage.Align := alClient;
      UnimImage.Stretch := True;

      if TFile.Exists(s) then
      begin
        UnimImage.Picture.LoadFromFile(s);
        UnimImage.Hint        := s;// полный путь к картинке
        UnimCarouselPage.Hint := s;// полный путь к картинке
      end;

    end;

  if Assigned(carouselPhotos.ActivePage) then
    lbImageName.Caption := ExtractFileName(carouselPhotos.ActivePage.Hint);

end;

 

Спасибо.

Screenshot_8.jpg

Posted

Ещё проблема.

Если в событие UnimFileUpload1.MultiCompleted() вставить вышеуказанную процедуру обновления карусели, то окно выбора файлов просто не закрывается

Posted

В общем, если убрать из события UnimFileUpload1.MultiCompleted()  вызов функции для повторного наполнения карусели и повесить на отдельную кнопку, то карусель нормально наполняется. И дополнительно ничего обновлять не нужно.

Но хочется, чтобы карусель обновлялась автоматически после завершения загрузки всех файлов.

 

Вопрос. А событие MultiCompleted() срабатывает после загрузки ВСЕХ файлов или после загрузки каждого файла? Просто я вижу на сервере, что в папку загружается только один файл и всё, форма загрузки висит и даже на кнопку Отмена не реагирует.

Posted
4 minutes ago, Sherzod said:

Можете сделать тестовый случай!?

Попробую

Posted
12 minutes ago, x11 said:

Вопрос. А событие MultiCompleted() срабатывает после загрузки ВСЕХ файлов или после загрузки каждого файла?

Срабатывает после загрузки всех файлов.

Posted

может нужно поставить какую-то задержку перед procedure PhotosLoadImages? без нее нормально работает

Posted

Пожалуйста, попробуйте сделать тестовый случай, постараемся проанализировать.

Posted

Прикрепил пример. Откройте на приложение смартфоне.

1. На форме логина просто нажмите Войти.

2. Нажмите Upload (первую кнопку), выберите 2-3 файла и загрузите их.

3. Если проблема не проявится, то удалите эти картинки кнопкой Удалить.

4. Снова загрузите 2-3 файла.

Скорее всего, что проблема проявится именно после удаления картинок и повторной загрузки.

UniGUI_Touch_Img_Upload.zip

Posted
1 hour ago, x11 said:

Скорее всего, что проблема проявится именно после удаления картинок и повторной загрузки.

Кажется проблема в массиве LList...

Posted

Удаляю картинку, потом добавляю.

На экране пусто... хотя три страницы в карусели есть. Потом пытаюсь пролистать карусель и получаю ошибку "n.getId is not a function" каждый раз когда листаю

Screenshot_3.jpg

Posted
2 hours ago, x11 said:

Удаляю картинку, потом добавляю.

На экране пусто... хотя три страницы в карусели есть. Потом пытаюсь пролистать карусель и получаю ошибку "n.getId is not a function" каждый раз когда листаю

Я проанализирую.

  • Upvote 1
Posted
On 7/23/2020 at 3:49 PM, x11 said:

1. На форме логина просто нажмите Войти.

2. Нажмите Upload (первую кнопку), выберите 2-3 файла и загрузите их.

Здравствуйте,

Можете ли Вы проверить только мультизагрузку файлов?

procedure TUnimForm1.UnimFileUpload1MultiCompleted(Sender: TObject;
  Files: TUniFileInfoArray);
begin

end;

Мне кажется, есть проблема при загрузке нескольких файлов (MultipleFiles = True)...

Posted

Я вроде бы писал, что мультизагрузка нескольких фалов работает без ошибок. Если не использовать событие OnMultiCompleted

Вот, нашел.

On 7/23/2020 at 12:09 PM, x11 said:

В общем, если убрать из события UnimFileUpload1.MultiCompleted()  вызов функции для повторного наполнения карусели и повесить на отдельную кнопку, то карусель нормально наполняется.

 

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

Как это сделать правильно?

Posted
9 minutes ago, x11 said:

Я вроде бы писал, что мультизагрузка нескольких фалов работает без ошибок. Если не использовать событие OnMultiCompleted

Да, я помню.

Но, я тестирую только мультизагрузку, и она кажется не работает корректно.

Posted
18 minutes ago, x11 said:

что мультизагрузка нескольких фалов работает без ошибок.

Пожалуйста проверьте мультизагрузку, загружайте несколько раз и проверяйте каталог. Сохраняются ли все файлы!?

Posted

Только что загрузил 13 файлов (Wifi, мобильный chrome) без проблем. Событие MultiCompleted пустое.

Напишите, что мне сделать, как загрузить, чтобы тоже воспроизвести проблему? Какие условия?

Свойства unimFileUpload на снимке:

Screenshot_10.jpg

Posted
1 minute ago, x11 said:

Напишите, что мне сделать, как загрузить, чтобы тоже воспроизвести проблему? Какие условия?

 

1 minute ago, Sherzod said:

загружайте несколько раз и проверяйте каталог. Сохраняются ли все файлы!?

 

Posted

Ага, точно, проблема есть при ПОВТОРНОЙ загрузке.

Если нажать кнопку Загрузить и выбрать 2 файла и загрузить их, то все норм. Теперь я нажимаю второй раз кнопку Загрузить, выбираю еще 3 других файла и загружаю, то на сервере остается только вторые 3 файла. Теперь я нажимаю кнопку Загрузить в третий раз и выбираю 1 файл и на сервере после загрузки остается только один файл, который я загрузил в третий раз.

Т.е. каждый раз удаляются предыдущие картинки.

  • Like 1
Posted

Вот еще что заметил. Если в папке с картинками заранее положить пару файлов (картинок), то они удаляться не будут.

  • 2 months later...
  • 4 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...