Como impedir um form MDIShild de ser aberto 2 vezes?
26/02/2003
0
Como fazer para impedir que um form MDIShild seja aberto duas vezes, ou seja, se tenho um formCliente aberto, o mesmo não poderá ser aberto novamente.
Anonymous
Curtir tópico
+ 0
Responder
Posts
26/02/2003
Anonymous
Segue um exemplo abaixo:
procedure TfrmPrincipal.Entrada;
var
i,Found:Integer;
frmEntrada:TfrmEntrada;
begin
//Veriricar se o formulário já foi criado.
Found := -1;
for i := 0 to Screen.FormCount - 1 do
begin
if Screen.Forms[i] is TfrmEntrada then
begin
Found := i;
break;
end;
end;
if Found <> -1 then
begin
Screen.Forms[Found].Show;
end
else
begin
LockWindowUpDate(handle);
try
frmEntrada := TfrmEntrada.Create(Self);
frmEntrada.Show;
finally
LockWindowUpDate(0);
end;
end;
end;
procedure TfrmPrincipal.Entrada;
var
i,Found:Integer;
frmEntrada:TfrmEntrada;
begin
//Veriricar se o formulário já foi criado.
Found := -1;
for i := 0 to Screen.FormCount - 1 do
begin
if Screen.Forms[i] is TfrmEntrada then
begin
Found := i;
break;
end;
end;
if Found <> -1 then
begin
Screen.Forms[Found].Show;
end
else
begin
LockWindowUpDate(handle);
try
frmEntrada := TfrmEntrada.Create(Self);
frmEntrada.Show;
finally
LockWindowUpDate(0);
end;
end;
end;
Responder
26/02/2003
Anonymous
Faça assim:
procedure TForm1.ToolButton1Click(Sender: TObject);
begin
if not assigned(form2) then begin
application.createform(tform2,form2);
form2.show;
end else begin
form2.WindowState:=wsnormal;
end;
end;
No evento onclose do seu form mdichild coloque:
NomedoForm:=nil;
procedure TForm1.ToolButton1Click(Sender: TObject);
begin
if not assigned(form2) then begin
application.createform(tform2,form2);
form2.show;
end else begin
form2.WindowState:=wsnormal;
end;
end;
No evento onclose do seu form mdichild coloque:
NomedoForm:=nil;
Responder
Clique aqui para fazer login e interagir na Comunidade :)