Перейти к содержанию
Fire Monkey от А до Я
  • 0

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


Anatoliy

Вопрос

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

Ссылка на комментарий

Рекомендуемые сообщения

  • 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

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

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

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

Изменено пользователем Alex7wrt
Ссылка на комментарий
  • 0

Вместо рисования звезды в TPath, проще использовать соотвествующий символ юникода.

Char($2606) // Не закрашенная звезда

Char($2605) // Закрашенная звезда

image.thumb.png.edc787d3a3b92b7af81ac9b974731d0d.png

https://unicode-table.com/ru/sets/stars-symbols/

Можно даже для еврейский магазинов сделать рейтинг ?

Ссылка на комментарий

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

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

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