나는 정말로 내가 여기있는 바보 같은 짓을하고 있다는 것을 알고 있지만, 나는 그것을 풀어 낼 수없는 것처럼 보인다.Delphi의 색상 변환 문제
DBGrid에서 셀 배경을 채색하는 데 처음 시도하고 있습니다. 지금까지 피할 수 없었습니다. 나는 "Buttoncolour"라는 필드를 가지고 있는데,이 필드는 "CCFFCC"형태로 16 진수를 유지합니다. 나는 ColourDescription이라고 불리는 다른 칼럼을 가지고 있습니다. "ColourDescription"셀의 캔버스를 색칠하기 위해 16 진수 색상 코드를 사용하고 싶습니다.
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;
내가 뭔가 정수 값 아니라고 말해 컴파일 오류가 발생합니다 :
나는이 코드를 가지고있다. 나는 모든 것을 잘못 이해했다고 가정합니다. 친절한 사람들 한테 내가 뭘해야한다고 말해 줄 수 있니?
감사합니다.
정수가 아닌 (16 진수가 아닌) 값을 변환하려고 할 때 오류가 (런타임시)'StringToColor'에서 나타납니다. 이 문자열의 시작 부분에'$'char을 추가해야합니다 ('$ CCFFCC'와 같아야합니다. 그래서 코드에서'Canvas.Brush.Color : = StringToColor ('$'+ CCol);'). – TLama