질문입니다..
컴포넌트 네임에서 첫번째 글자부터 6번째 글자까지만 가져와서
그 이름을 검사하고픈데요...
예를 들어서 panel1_1,panel1_2,panel1_2,panel2_1,panel2_2,panel3_1,
panel3_2 이렇게 정의된
컴포넌트들의 이름이 있다고 가정하구
각 컴포넌트의 네임의 첫글로부터 6번째 글자까지만 비교하여... 거기에
해당하는 프로그램을 구현하고픈데요...
그러니까... panel1_1 이렇게 있다면 여기서 _1를 빼구 panel1 이름만
가져와서 다른거와 비교하는거죠...
if panel1 then...
else if panel2 then...
....
방법이 뭔지 좀 알려주세요...
판넬인지 명령버튼인지 에디트 박스인지를 구분하고자 그러신다면..
아래처럼..ClassName 을 이용하면 어떨까요?
아래소스는..
판넬 처럼 컨테이너 컨트롤로 묶여 있다면..
아래 함수에 해당 컨트롤을 넣어주면 해당 컨테이너 컨트롤에
포함된 컨트롤들의 클래스 명을 검사해서 원하는 작업을 해주는 함수입니다.
그럼..
Procedure Tacc0301f.FormClear(Obj: TComponent);
var
i : integer;
Control : TControl;
begin
for i:= 0 to TWinControl(Obj).ControlCount-1 do
begin
Control := TWinControl(Obj).Controls[i];
if (Control.ClassName = 'TPanel') then
begin
FormClear(Control);
end;
if (Control.ClassName = 'TEdit') Or
(Control.ClassName = 'TMaskEdit') Or
(Control.ClassName = 'TValEdit') Or
(Control.ClassName = 'TMemo') then
begin
TEdit(Control).Clear;
TEdit(Control).Hint := '';
TEdit(Control).Ctl3D := False;
end;
end;
end;