2011-09-23 3 views
6

내 응용 프로그램을 종료하기 전에 열려있는 모든 양식을 닫으라는 사용자에게 묻고 싶습니다.열린 소프트웨어의 모든 목록에서 목록을 얻는 방법은 무엇입니까?

열린 양식에서 자동으로 목록을 가져올 수 있습니까?

저는 Delphi 2006을 사용하고 있으며 양식의 자동 작성 기능을 사용하지 않지만 자동 작성 양식의 varApplication.CreateForm과 함께 사용하고 있습니다.

내 의견입니다.

답변

17

Screen.FormCountScreen.Forms을 살펴보십시오.

+0

thx man,'Screen.FormCount' 및'Screen.Forms'이 내 문제를 해결합니다! –

3

가능한 솔루션 (나는 C#에서 사용)은 열려있는 모든 폼 인스턴스를리스트 var에 저장하는 것입니다. 예를 들어 이라는 전역 목록을 가질 수 있습니다. 열린 폼; 모든 양식이 작성되면 양식 자체가 열린 양식에 대한 참조를 추가하고 닫을 때 양식을 제거 할 수 있습니다.
사용자가 응용 프로그램을 닫으려고 할 때 목록 수가 0보다 크고 사용자가 정말로 닫고 싶다면 응용 프로그램을 종료하기 전에 openedForms에 포함 된 모든 양식 인스턴스를 정상적으로 닫을 수 있습니다.

1

나는 아이에 대한

Main.MDIChildCount >0 

+0

대답은 Thx이지만 MDI는 사용하지 않습니다. –

0
var 
i:integer; 
begin 
    with Application do 
    for i:=0 to componentcount-1 do 
    if components[i] is TMyCustomForm   //your form class here, or simply TForm 
    then showmessage(components[i].Name); 
end; 

froms MDI 및 비 MDI 형태를 보여줍니다 사용합니다.

관련 문제