-1
자식이 여러 번 생성되는 것을 방지하려면 어떻게해야합니까? 예 : 로그인 양식. 로그인 양식을 열기 전에 하위 항목을 반복하지 않고 다른 인스턴스가 만들어 졌는지 확인하는 솔루션이 있습니까?MDI에서 여러 자식을 만들지 않게하는 방법
자식이 여러 번 생성되는 것을 방지하려면 어떻게해야합니까? 예 : 로그인 양식. 로그인 양식을 열기 전에 하위 항목을 반복하지 않고 다른 인스턴스가 만들어 졌는지 확인하는 솔루션이 있습니까?MDI에서 여러 자식을 만들지 않게하는 방법
기본적으로 각 양식에는 선언 된 전역 포인터가 있습니다. 설문지를 자동 생성하지 않더라도 해당 포인터를 계속 활용할 수 있습니다. 모든주는 양식, 시작시 글로벌 포인터를 nil
초기화하십시오. nil
에 대한 포인터를 확인하기 전에 해당 폼의 새 인스턴스를 만들고, 닫을 때 폼을 파괴하고 폼이 소멸 될 때 다시 글로벌 포인터를 nil
으로 다시 설정하십시오. 예를 들어 :
unit LoginForm;
interface
...
type
TLoginForm = class(TForm)
...
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
...
end;
var
LoginForm: TLoginForm = nil; // <-- here
implementation
...
procedure TLoginForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TLoginForm.FormDestroy(Sender: TObject);
begin
LoginForm := nil;
end;
...
end.
procedure TMainForm.SomeProcedure;
begin
...
if not Assigned(LoginForm) then
LoginForm := TLoginForm.Create(Self);
LoginForm.Show;
...
end;
양식은 사고에 의해 생성되지 않습니다. 당신은 그들을 창조합니다. 그래서, 당신은 선택할 수 없습니다. –
예, 사용자가 그 일을하지 못하게하는 방법이 궁금합니다. "멀티 폼"또는 무언가를위한 옵션이있을 수도 있습니다. –
당신은 폼을 만들 수있는 힘을주었습니다. 그것들을 만드는 것은 당신의 코드입니다. –