폼을 생성하고 필수입력항목 컨트롤의 색상을 일정한 규칙으로 함수화 하여 주기 위해서 아래와 같은 코드를 사용하였습니다.
<!--CodeS-->
procedure TMainForm.SetEditColor(Sender: TForm);
var
i : Integer;
begin
for i:=0 to Sender.ControlCount - 1 do begin
if (Sender.Controls[i] is TControl) then begin
case (Sender.Controls[i] as TControl).Tag of
1001 : TControl(Sender.Controls[i]).Color := $00FEF8D8;
end;//case
end;//if
end;
end;
<!--CodeE-->
문제는 TControl(Sender.Controls[i]).Color 의 Color가 선언되어있지 않다고 에러가 나옵니다.
TEdit, TDBLookupComboBox, TDataTimePicker등의 컨트롤이 주로 필수입력항목으로 사용될것같아 TConrol로 형변환하여 Color값을 바꿔주려고하니, 안되네요.(Help상에는 제가 지목한 컨트롤의 상위에 TControl이 모두 조상으로 자리잡고 있거든요) 다르게 Sender로 넘어오는 TForm의 경우는 TControl(Sender).Color 로 색상이 변경이 됩니다.
무슨문제인지 알고 싶습니다. 도와주세요~
<!--CodeS-->
type
TControlAccess = class(TControl)
end;
....
procedure TMainForm.SetEditColor(Sender: TForm);
var
i : Integer;
begin
for i:=0 to Sender.ControlCount - 1 do begin
if (Sender.Controls[i] is TControl) then begin
case (Sender.Controls[i] as TControl).Tag of
1001 : TControlAccess(Sender.Controls[i]).Color := $00FEF8D8;
end;//case
end;//if
end;
end;
<!--CodeE-->