Я просто знаю, что я делаю что-то действительно глупо здесь, но, похоже, я не могу это исправить.Проблема с преобразованием цвета Delphi
У меня есть первая попытка раскрасить фон ячейки в DBGrid, чего я до сих пор избегал. У меня есть поле под названием «Buttoncolour», которое имеет шестнадцатеричный цвет в форме «CCFFCC». У меня есть еще одна колонка, которую я хочу раскрасить, называемую «ColourDescription». Я хочу использовать шестнадцатеричный цветовой код для окраски холста ячейки «ColourDescription».
У меня есть этот код:
procedure TProductForm.MDBGrid2DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TDBGColumn;
State: TGridDrawState);
var
CCol : String;
begin
if column.fieldname = 'ColourDescription' then begin
CCol := ProdGroupQuery.FieldByName('Buttoncolour').AsString;
Canvas.Brush.Color:= StringToColor(CCol);
end;
end;
я получаю ошибку компиляции, говоря мне, что что-то не является целым числом. Я предполагаю, что у меня все получилось не так. Может ли кто-нибудь из вас добрых людей сказать мне, что я ДОЛЖЕН делать, пожалуйста?
Спасибо!
Мое предположение, что ошибка появляется (во время выполнения) от 'StringToColor', когда вы пытаетесь преобразовать значение не целое число (не гекс). Вы должны добавить '$' char в начале этой строки (чтобы быть как '$ CCFFCC', поэтому в вашем коде это будет' Canvas.Brush.Color: = StringToColor ('$' + CCol); '). – TLama