• 0
Anatoliy

Реализовать рейтинг

Вопросы

Прощу прощения, прохожий вопрос, вроде поднимался, но не нахожу. Вопрос: как наиболее правильным способом реализовать пять звёздочек для оценки показа рейтинга? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 ответов на этот вопрос

  • 0

Спасибо. А стандартными средствами как посоветуете? Я просто не знаю как установить FMXComponent в C++ Builder.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Не совсем понял, какой рейтинг имеется ввиду. Внутренний рейтинг в приложении?

Добавить 5 переменных целочисленного типа, которые будут хранить количество выставленных оценок от 1 до 5.

С помощью TPathData нарисовать звезду.

Создать 5 компонентов TPath и в обработчике OnTap или OnClick каждого увеличивать соответствующую переменную на единицу. И для оценки рейтинга вычислять среднее арифметическое: (a1 + a2*2 + a3*3 + a4*4 + a5*5)/(a1 +a2 +a3 + a4 + a5)

Изменено пользователем Alex7wrt

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
Цитата

Не совсем понял, какой рейтинг имеется ввиду. Внутренний рейтинг в приложении?

Оценка работы персонала магазина. Пользователь физически пришел в магазин и купил товар. Затем пользователь запускает мобильное приложение (по желанию). Далее в мобильном приложении этот пользователь ставит оценку работы персонала. При старте в мобильном приложении пользователю показываю 5 серых звезд и календарь. Пример: пользователь жмет на 4-ю звезду и первый 4 звезды становятся желтыми. Оценка 4. Далее проанализировать, что оценка =4 и далее для меня нет проблем отправить эту оценку пользователя на определенный email. Моя проблема как эти 5 звезд в мобильном приложении организовать и показать наиболее правильным и красивым образом ну и конечно понять на какой звезде был клик, ну и раскрасить предыдущее в желтый цвет для красоты, а не делать радиобатоны вместо звезд...

Изменено пользователем Anatoliy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 1
2 часа назад, Anatoliy сказал:

Моя проблема как эти 5 звезд в мобильном приложении организовать и показать наиболее правильным и красивым образом ну и конечно понять на какой звезде был клик, ну и раскрасить предыдущее в желтый цвет для красоты, а не делать радиобатоны вместо звезд...

Надеюсь, что в предыдущем посте помог ответить на первую часть вопроса.

Если каждая звезда организована отдельным компонентом, то, соответственно, вы всегда можете узнать по какой звезде был клик и раскрасить все звезды до нее (включительно) в желтый цвет.

Ниже скинул программку для герерации TPathData звезды, может пригодится

star generator.zip

Можно использовать генерируемую строку TPathData, или использовать код
 

procedure star;
var i: byte;
    a1,a2: single;
begin
    Path.Clear;
    Path.MoveTo(PointF(0,-r));
    a1:=Pi/5-Pi/2; a2:=-Pi/2;
    for i:=1 to 5 do begin
        Path.LineTo(PointF((r*cos(Pi/5)-d)*cos(a1+(i-1)*2*Pi/5),(r*cos(Pi/5)-d)*sin(a1+(i-1)*2*Pi/5)));
        Path.LineTo(PointF(r*cos(i*2*Pi/5+a2),r*sin(i*2*Pi/5+a2)));
    end;
    Path.ClosePath;
    path.Translate(r*cos(Pi/10),r);
end;

Где R - радиус описанной окружности вокруг звезды. В програме он равен 100. d - Разность радиусов внешней и внутренней окружности согласно рисунка

4.PNG.abfe8504a95ba539c8ee790c4d05a43e.PNG

 

 

Изменено пользователем Alex7wrt

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Эта шэдэвр!!!
В случайно в Думе не кодили?

😂😂😂

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Не приходилось ))

Это рисунок звезды вызывает такие ассоциации? )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Да)
Не обращайте внимания, это шутка)
Конец дня и все такое)))

Если по делу, то понравился код рисования звезды)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Да все норм. Мне самому рисунок не очень понравился ))

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

Но вот щас все-таки решил доделать. Исправил изображение )

Изменено пользователем Alex7wrt

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу