작성된 모든 adoquery를 닫고 (임의의) 양식에서 열려는 절차를 작성 중입니다. 문제는 구성 요소를 식별하기 위해 양식에 대한 형변환을해야한다는 것입니다. 예제와 같이 동적 캐스트를 만들려면 어떻게해야합니까?양식을 동적으로 전송하십시오.
나는이 코드입니다이
Procedure OpenADODataSets(Form:TForm;FormType:TClass);
...
...
(Form as FormType).ComponentCount
또는
Procedure OpenADODataSets(Form:TForm;FormType:TClass);
...
...
FormType(Form).ComponentCount
뭔가를해야합니다. (내가 주석으로) 당신이 (FormType 같은 양식) 필요합니까 왜 @Edelcom
Procedure OpenADODataSets(Form:TForm);
var
i: integer;
begin
for i:=0 to Form.ComponentCount-1 do
if Form.Components[i].ClassType=TADOQuery then
if not TADOQuery(Form.Components[i]).Active then
TADOQuery(Form.Components[i]).Open;
end;
왜 (Form을 FormType으로) 필요합니까? – Edelcom
구성 요소의 유형이 * TADOQuery와 정확히 같은지 테스트하는 대신 ** is ** 연산자를 사용하여 구성 요소가 * TADOQuery에서 파생되는지 테스트해야합니다 : if Form.Components [i] is is TADOQuery가 아니라 TADOQuery (Form.Components [i])입니다. 활성 상태입니다. ' –