x11 Posted July 23, 2020 Posted July 23, 2020 На форме есть 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; Спасибо. Quote
x11 Posted July 23, 2020 Author Posted July 23, 2020 Ещё проблема. Если в событие UnimFileUpload1.MultiCompleted() вставить вышеуказанную процедуру обновления карусели, то окно выбора файлов просто не закрывается Quote
x11 Posted July 23, 2020 Author Posted July 23, 2020 В общем, если убрать из события UnimFileUpload1.MultiCompleted() вызов функции для повторного наполнения карусели и повесить на отдельную кнопку, то карусель нормально наполняется. И дополнительно ничего обновлять не нужно. Но хочется, чтобы карусель обновлялась автоматически после завершения загрузки всех файлов. Вопрос. А событие MultiCompleted() срабатывает после загрузки ВСЕХ файлов или после загрузки каждого файла? Просто я вижу на сервере, что в папку загружается только один файл и всё, форма загрузки висит и даже на кнопку Отмена не реагирует. Quote
x11 Posted July 23, 2020 Author Posted July 23, 2020 4 minutes ago, Sherzod said: Можете сделать тестовый случай!? Попробую Quote
Sherzod Posted July 23, 2020 Posted July 23, 2020 12 minutes ago, x11 said: Вопрос. А событие MultiCompleted() срабатывает после загрузки ВСЕХ файлов или после загрузки каждого файла? Срабатывает после загрузки всех файлов. Quote
x11 Posted July 23, 2020 Author Posted July 23, 2020 может нужно поставить какую-то задержку перед procedure PhotosLoadImages? без нее нормально работает Quote
Sherzod Posted July 23, 2020 Posted July 23, 2020 Пожалуйста, попробуйте сделать тестовый случай, постараемся проанализировать. Quote
x11 Posted July 23, 2020 Author Posted July 23, 2020 Прикрепил пример. Откройте на приложение смартфоне. 1. На форме логина просто нажмите Войти. 2. Нажмите Upload (первую кнопку), выберите 2-3 файла и загрузите их. 3. Если проблема не проявится, то удалите эти картинки кнопкой Удалить. 4. Снова загрузите 2-3 файла. Скорее всего, что проблема проявится именно после удаления картинок и повторной загрузки. UniGUI_Touch_Img_Upload.zip Quote
Sherzod Posted July 23, 2020 Posted July 23, 2020 1 hour ago, x11 said: Скорее всего, что проблема проявится именно после удаления картинок и повторной загрузки. Кажется проблема в массиве LList... Quote
x11 Posted July 23, 2020 Author Posted July 23, 2020 В каком смысле? Проблема внутри цикла for s in LList do? Quote
x11 Posted July 23, 2020 Author Posted July 23, 2020 Удаляю картинку, потом добавляю. На экране пусто... хотя три страницы в карусели есть. Потом пытаюсь пролистать карусель и получаю ошибку "n.getId is not a function" каждый раз когда листаю Quote
Sherzod Posted July 23, 2020 Posted July 23, 2020 2 hours ago, x11 said: Удаляю картинку, потом добавляю. На экране пусто... хотя три страницы в карусели есть. Потом пытаюсь пролистать карусель и получаю ошибку "n.getId is not a function" каждый раз когда листаю Я проанализирую. 1 Quote
Sherzod Posted July 27, 2020 Posted July 27, 2020 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)... Quote
x11 Posted July 27, 2020 Author Posted July 27, 2020 Я вроде бы писал, что мультизагрузка нескольких фалов работает без ошибок. Если не использовать событие OnMultiCompleted Вот, нашел. On 7/23/2020 at 12:09 PM, x11 said: В общем, если убрать из события UnimFileUpload1.MultiCompleted() вызов функции для повторного наполнения карусели и повесить на отдельную кнопку, то карусель нормально наполняется. Проблема в том, что после удаления или загрузки нового файла на сервер, нужно автоматически перегенерировать карусель. Как это сделать правильно? Quote
Sherzod Posted July 27, 2020 Posted July 27, 2020 9 minutes ago, x11 said: Я вроде бы писал, что мультизагрузка нескольких фалов работает без ошибок. Если не использовать событие OnMultiCompleted Да, я помню. Но, я тестирую только мультизагрузку, и она кажется не работает корректно. Quote
Sherzod Posted July 27, 2020 Posted July 27, 2020 18 minutes ago, x11 said: что мультизагрузка нескольких фалов работает без ошибок. Пожалуйста проверьте мультизагрузку, загружайте несколько раз и проверяйте каталог. Сохраняются ли все файлы!? Quote
x11 Posted July 27, 2020 Author Posted July 27, 2020 Только что загрузил 13 файлов (Wifi, мобильный chrome) без проблем. Событие MultiCompleted пустое. Напишите, что мне сделать, как загрузить, чтобы тоже воспроизвести проблему? Какие условия? Свойства unimFileUpload на снимке: Quote
Sherzod Posted July 27, 2020 Posted July 27, 2020 1 minute ago, x11 said: Напишите, что мне сделать, как загрузить, чтобы тоже воспроизвести проблему? Какие условия? 1 minute ago, Sherzod said: загружайте несколько раз и проверяйте каталог. Сохраняются ли все файлы!? Quote
x11 Posted July 27, 2020 Author Posted July 27, 2020 Ага, точно, проблема есть при ПОВТОРНОЙ загрузке. Если нажать кнопку Загрузить и выбрать 2 файла и загрузить их, то все норм. Теперь я нажимаю второй раз кнопку Загрузить, выбираю еще 3 других файла и загружаю, то на сервере остается только вторые 3 файла. Теперь я нажимаю кнопку Загрузить в третий раз и выбираю 1 файл и на сервере после загрузки остается только один файл, который я загрузил в третий раз. Т.е. каждый раз удаляются предыдущие картинки. 1 Quote
x11 Posted July 27, 2020 Author Posted July 27, 2020 Вот еще что заметил. Если в папке с картинками заранее положить пару файлов (картинок), то они удаляться не будут. Quote
Sherzod Posted July 27, 2020 Posted July 27, 2020 Да, кажется это баг. Я открою запрос... и дам Вам знать. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.