메뉴를 동적으로 생성한뒤
해당메뉴에 해당하는 폼을 뛰우고 싶습니다.
예를들어
영업메뉴 자재메뉴
- 수주등록 - 자재코드입력
- 수주현황출력 - 자재 현황출력
이라는 메뉴를 동적으로 생성하고
수주등록이라는 메뉴를 실행하면
해당 폼을 뛰워줄려고 합니다.
메뉴가 한두개 이면
일일히 해당하는 폼의 생성을 코딩 해 놓았다가
하면 되지만
제같은 경우에는
DB의 폼이름과 메뉴이름을 다 테이블로 만들어 놓았다가
해당메뉴를 실행하면
DB에서 해당하는 폼이름을 가져와서
그 폼을 자동으로 실행할려고 하는데
select formname from menutable
where menuname = '수주등록'
이렇게 formname을 가져와서
s_formname := query1.filedByName('formaname').asstring
으로 변수에 넣어넣고
Form2 := s_formname.create(self);
이런식으로 처리 하고 싶습니다.
당연히 s_formname이 string 이므로 에러가 나죠.
이부분을 어떻게 처리해야 일일히 코딩하지 안하고
하나의 프로시저로 처리 할 수 있을까요?
제목 그대로 TClassList를 이용하시거나, TList를 이용하셔야 할듯 싶습니다.
먼저, 리스트에 모든 폼의 TClass 타입의 객체를 넣어 두고, 나중에 TClass의 이름(ClassName)으로 비교한 후에, TClass.NewInstance 함수를 호출하여서 폼을 생성하시면 될것 같습니다.
그럼, 즐프~