x11 Posted July 23, 2020 Share 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; Спасибо. Link to comment Share on other sites More sharing options...
x11 Posted July 23, 2020 Author Share Posted July 23, 2020 Ещё проблема. Если в событие UnimFileUpload1.MultiCompleted() вставить вышеуказанную процедуру обновления карусели, то окно выбора файлов просто не закрывается Link to comment Share on other sites More sharing options...
Sherzod Posted July 23, 2020 Share Posted July 23, 2020 Можете сделать тестовый случай!? Link to comment Share on other sites More sharing options...
x11 Posted July 23, 2020 Author Share Posted July 23, 2020 В общем, если убрать из события UnimFileUpload1.MultiCompleted() вызов функции для повторного наполнения карусели и повесить на отдельную кнопку, то карусель нормально наполняется. И дополнительно ничего обновлять не нужно. Но хочется, чтобы карусель обновлялась автоматически после завершения загрузки всех файлов. Вопрос. А событие MultiCompleted() срабатывает после загрузки ВСЕХ файлов или после загрузки каждого файла? Просто я вижу на сервере, что в папку загружается только один файл и всё, форма загрузки висит и даже на кнопку Отмена не реагирует. Link to comment Share on other sites More sharing options...
x11 Posted July 23, 2020 Author Share Posted July 23, 2020 4 minutes ago, Sherzod said: Можете сделать тестовый случай!? Попробую Link to comment Share on other sites More sharing options...
Sherzod Posted July 23, 2020 Share Posted July 23, 2020 12 minutes ago, x11 said: Вопрос. А событие MultiCompleted() срабатывает после загрузки ВСЕХ файлов или после загрузки каждого файла? Срабатывает после загрузки всех файлов. Link to comment Share on other sites More sharing options...
x11 Posted July 23, 2020 Author Share Posted July 23, 2020 может нужно поставить какую-то задержку перед procedure PhotosLoadImages? без нее нормально работает Link to comment Share on other sites More sharing options...
Sherzod Posted July 23, 2020 Share Posted July 23, 2020 Пожалуйста, попробуйте сделать тестовый случай, постараемся проанализировать. Link to comment Share on other sites More sharing options...
x11 Posted July 23, 2020 Author Share Posted July 23, 2020 Прикрепил пример. Откройте на приложение смартфоне. 1. На форме логина просто нажмите Войти. 2. Нажмите Upload (первую кнопку), выберите 2-3 файла и загрузите их. 3. Если проблема не проявится, то удалите эти картинки кнопкой Удалить. 4. Снова загрузите 2-3 файла. Скорее всего, что проблема проявится именно после удаления картинок и повторной загрузки. UniGUI_Touch_Img_Upload.zip Link to comment Share on other sites More sharing options...
Sherzod Posted July 23, 2020 Share Posted July 23, 2020 Ок, я проанализирую. Link to comment Share on other sites More sharing options...
Sherzod Posted July 23, 2020 Share Posted July 23, 2020 1 hour ago, x11 said: Скорее всего, что проблема проявится именно после удаления картинок и повторной загрузки. Кажется проблема в массиве LList... Link to comment Share on other sites More sharing options...
x11 Posted July 23, 2020 Author Share Posted July 23, 2020 В каком смысле? Проблема внутри цикла for s in LList do? Link to comment Share on other sites More sharing options...
x11 Posted July 23, 2020 Author Share Posted July 23, 2020 Удаляю картинку, потом добавляю. На экране пусто... хотя три страницы в карусели есть. Потом пытаюсь пролистать карусель и получаю ошибку "n.getId is not a function" каждый раз когда листаю Link to comment Share on other sites More sharing options...
Sherzod Posted July 23, 2020 Share Posted July 23, 2020 2 hours ago, x11 said: Удаляю картинку, потом добавляю. На экране пусто... хотя три страницы в карусели есть. Потом пытаюсь пролистать карусель и получаю ошибку "n.getId is not a function" каждый раз когда листаю Я проанализирую. 1 Link to comment Share on other sites More sharing options...
Sherzod Posted July 27, 2020 Share 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)... Link to comment Share on other sites More sharing options...
x11 Posted July 27, 2020 Author Share Posted July 27, 2020 Я вроде бы писал, что мультизагрузка нескольких фалов работает без ошибок. Если не использовать событие OnMultiCompleted Вот, нашел. On 7/23/2020 at 12:09 PM, x11 said: В общем, если убрать из события UnimFileUpload1.MultiCompleted() вызов функции для повторного наполнения карусели и повесить на отдельную кнопку, то карусель нормально наполняется. Проблема в том, что после удаления или загрузки нового файла на сервер, нужно автоматически перегенерировать карусель. Как это сделать правильно? Link to comment Share on other sites More sharing options...
Sherzod Posted July 27, 2020 Share Posted July 27, 2020 9 minutes ago, x11 said: Я вроде бы писал, что мультизагрузка нескольких фалов работает без ошибок. Если не использовать событие OnMultiCompleted Да, я помню. Но, я тестирую только мультизагрузку, и она кажется не работает корректно. Link to comment Share on other sites More sharing options...
Sherzod Posted July 27, 2020 Share Posted July 27, 2020 18 minutes ago, x11 said: что мультизагрузка нескольких фалов работает без ошибок. Пожалуйста проверьте мультизагрузку, загружайте несколько раз и проверяйте каталог. Сохраняются ли все файлы!? Link to comment Share on other sites More sharing options...
x11 Posted July 27, 2020 Author Share Posted July 27, 2020 Только что загрузил 13 файлов (Wifi, мобильный chrome) без проблем. Событие MultiCompleted пустое. Напишите, что мне сделать, как загрузить, чтобы тоже воспроизвести проблему? Какие условия? Свойства unimFileUpload на снимке: Link to comment Share on other sites More sharing options...
Sherzod Posted July 27, 2020 Share Posted July 27, 2020 1 minute ago, x11 said: Напишите, что мне сделать, как загрузить, чтобы тоже воспроизвести проблему? Какие условия? 1 minute ago, Sherzod said: загружайте несколько раз и проверяйте каталог. Сохраняются ли все файлы!? Link to comment Share on other sites More sharing options...
x11 Posted July 27, 2020 Author Share Posted July 27, 2020 Ага, точно, проблема есть при ПОВТОРНОЙ загрузке. Если нажать кнопку Загрузить и выбрать 2 файла и загрузить их, то все норм. Теперь я нажимаю второй раз кнопку Загрузить, выбираю еще 3 других файла и загружаю, то на сервере остается только вторые 3 файла. Теперь я нажимаю кнопку Загрузить в третий раз и выбираю 1 файл и на сервере после загрузки остается только один файл, который я загрузил в третий раз. Т.е. каждый раз удаляются предыдущие картинки. 1 Link to comment Share on other sites More sharing options...
x11 Posted July 27, 2020 Author Share Posted July 27, 2020 Вот еще что заметил. Если в папке с картинками заранее положить пару файлов (картинок), то они удаляться не будут. Link to comment Share on other sites More sharing options...
Sherzod Posted July 27, 2020 Share Posted July 27, 2020 Да, кажется это баг. Я открою запрос... и дам Вам знать. Link to comment Share on other sites More sharing options...
x11 Posted October 24, 2020 Author Share Posted October 24, 2020 Проблема еще не исправлена? Link to comment Share on other sites More sharing options...
x11 Posted November 22, 2020 Author Share Posted November 22, 2020 проблема все еще актуальна Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now