Size: a a a

2020 March 08

AF

Andrew Fa in Delphi & Lazarus
Viktor Akselrod
если ты подберешь иконки адекватно масштабам, то будет нормально
эт да. но просто думал есть какое то более лаконичное решение
источник

VA

Viktor Akselrod in Delphi & Lazarus
в делфи не особо принято вектор использовать в качестве иконок.
просто используешь несколько наборов растровых иконок под популярные скейлинги. например 100, 125, 150, 200%
как правило это покрывает большинство кейсов
источник

N

Nik in Delphi & Lazarus
TPath же вроде понимает svg, не?
источник

N

Nik in Delphi & Lazarus
правда, он под FMX если мне память не изменяет
источник

VA

Viktor Akselrod in Delphi & Lazarus
Nik
TPath же вроде понимает svg, не?
мы про vcl
источник

N

Nik in Delphi & Lazarus
там печалька )
источник

VA

Viktor Akselrod in Delphi & Lazarus
и даже в fmx он ограниченный сильно. для полноценных иконок не пойдет
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
Dmitry Belkevich
по многопоточности. ну вот когда истинная многопоточность понадобится. так расскажешь как там код работает )
Ну, я же говорю, что программа работает с 9тью потоками. 4 пока грузят списки, 4 потока грузят картинки и основной
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
Dmitry Belkevich
по многопоточности. ну вот когда истинная многопоточность понадобится. так расскажешь как там код работает )
Пользователь в любой момент может передумать слушать музыку этого человека и нажать на другого, что приведёт к остановке всех потоков и работе новых. При этом конфликтов не будет. Т.к. поток каждого такого механизма будет внутри себя (т.е. крутить цикл в потоке) ждать завершения старого потока.
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
Dmitry Belkevich
по многопоточности. ну вот когда истинная многопоточность понадобится. так расскажешь как там код работает )
Пользователь в итоге видит всё что нужно. Нажимает, списки временно пустеют (секунды на полторы), потом заполняются все сразу. А потоки загрузки картинок грузят превью треков в реалтайме. Все как в браузере.
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
Dmitry Belkevich
по многопоточности. ну вот когда истинная многопоточность понадобится. так расскажешь как там код работает )
При этом играет музыка и работает вся анимация на форме. Пользователь делает что хочет.
Вы можете протестить работу. Я могу скинуть. Это ВК аудио плеер.
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
источник

AK

Alexey Kulakov in Delphi & Lazarus
Andrew Fa
а как нибудь можно использовать svg изображения в делфи? ну прям на уровне tImage как бы - просто timage позволяет грузить растр, а растровые иконки это прям кровь из глаз =\
в  лазаре есть компоненты для работы с SVG, может, можно оттуда выдрать?
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
Кстати в отличии от вк, я сделал реальную визуализацию воспроизведения музыки в иконке трека, а не имитацию)

Ну и естественно идёт кэширование в бд sqlite и следующий запуск будет без подгрузки картинок с сервера, а из бд.
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
Кстати помимо загрузки, поток обрабатывает каринку, накладывая маску png картнки. Чтобы сделать её круглой (для аватвров) или скругленной (для треков) со сглаживанием при ресайзе
источник

AS

Alexey Shumkin in Delphi & Lazarus
Геннадий Малинин
Кстати в отличии от вк, я сделал реальную визуализацию воспроизведения музыки в иконке трека, а не имитацию)

Ну и естественно идёт кэширование в бд sqlite и следующий запуск будет без подгрузки картинок с сервера, а из бд.
Картинки в БД? И чо, как скорость? Хотя, кажется, я знаю ответ :)
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
Alexey Shumkin
Картинки в БД? И чо, как скорость? Хотя, кажется, я знаю ответ :)
Ну ты видишь, сейчас там 2.7к, всё быстро
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
А если ещё и проиндексировать таблицу
источник