UColorByID.pas 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. unit UColorByID;
  2. interface
  3. procedure RedbyID(const ID:Cardinal; Out Red:Byte); overload;
  4. procedure RedbyID(const ID:Cardinal; Out Red:Real); overload;
  5. procedure GreenbyID(const ID:Cardinal; Out Red:Byte); overload;
  6. procedure GreenbyID(const ID:Cardinal; Out Red:Real); overload;
  7. procedure BluebyID(const ID:Cardinal; Out Red:Byte); overload;
  8. procedure BluebyID(const ID:Cardinal; Out Red:Real); overload;
  9. implementation
  10. uses Math;
  11. procedure RedbyID(const ID:Cardinal; Out Red:Byte); overload;
  12. begin
  13. Red:=Round(power((ID+1)*123,3)+(ID+1)*1234567) mod 255;
  14. end;
  15. procedure RedbyID(const ID:Cardinal; Out Red:Real); overload;
  16. begin
  17. Red:=(Round(power((ID+1)*123,3)+(ID+1)*1234567) mod 255)/255;
  18. end;
  19. procedure GreenbyID(const ID:Cardinal; Out Red:Byte); overload;
  20. begin
  21. Red:=Round(power((ID+1)*1234,3)+(ID+1)*123456) mod 255;
  22. end;
  23. procedure GreenbyID(const ID:Cardinal; Out Red:Real); overload;
  24. begin
  25. Red:=(Round(power((ID+1)*1234,3)+(ID+1)*123456) mod 255)/255;
  26. end;
  27. procedure BluebyID(const ID:Cardinal; Out Red:Byte); overload;
  28. begin
  29. Red:=Round(power((ID+1)*12356,3)+(ID+1)*12345) mod 255;
  30. end;
  31. procedure BluebyID(const ID:Cardinal; Out Red:Real); overload;
  32. begin
  33. Red:=(Round(power((ID+1)*12356,3)+(ID+1)*12345) mod 255)/255;
  34. end;
  35. end.