Fórum criação de telas herdadas........... #336894
29/01/2007
0
olá boa tarde!!!
Estou com um probleminha aqui com relação a criação de formlarios no meu projeto....
estou herdando uma tela nova, cheguei ate a deixar a tela pronta, é inclusive uma tela de cadastro de funcionarios...
mas aparece essa mensagem:
nenhum mdi forms é atualmente ativo não pode criar o formulario....
procedure FormCreate(Sender: TObject);
procedure Funcionrios1Click(Sender: TObject);
private
{ Private declarations }
protected
procedure ShowForm(InstanceClass: TComponentClass; var Reference);
public
{ Public declarations }
end;
e desenvolvi essa procedure:
procedure TfrmBancoHoras.ShowForm(InstanceClass: TComponentClass; var Reference);
var
I: Integer;
Achou: Boolean;
Instance: TComponent;
begin
Achou := False;
for I := 0 to (MDIChildCount -1) do
if MDIChildren[I].ClassType = InstanceClass then
begin
Achou := True;
Break;
end;
if Achou then
begin
if TForm(Reference).WindowState = wsMinimized then
TForm(Reference).WindowState := wsNormal;
TForm(Reference).Show;
end
else
begin
Instance := TComponent(InstanceClass.NewInstance);
TComponent(Reference) := Instance;
try
Instance.Create(Self);
except
TComponent(Reference) := nil;
Instance.Destroy;
raise;
end;
if Instance is TForm then
begin
TForm(Instance).HandleNeeded;
end;
end;
end;
mas tbem acabou dando erro de acsses.............
Estou com um probleminha aqui com relação a criação de formlarios no meu projeto....
estou herdando uma tela nova, cheguei ate a deixar a tela pronta, é inclusive uma tela de cadastro de funcionarios...
mas aparece essa mensagem:
nenhum mdi forms é atualmente ativo não pode criar o formulario....
procedure FormCreate(Sender: TObject);
procedure Funcionrios1Click(Sender: TObject);
private
{ Private declarations }
protected
procedure ShowForm(InstanceClass: TComponentClass; var Reference);
public
{ Public declarations }
end;
e desenvolvi essa procedure:
procedure TfrmBancoHoras.ShowForm(InstanceClass: TComponentClass; var Reference);
var
I: Integer;
Achou: Boolean;
Instance: TComponent;
begin
Achou := False;
for I := 0 to (MDIChildCount -1) do
if MDIChildren[I].ClassType = InstanceClass then
begin
Achou := True;
Break;
end;
if Achou then
begin
if TForm(Reference).WindowState = wsMinimized then
TForm(Reference).WindowState := wsNormal;
TForm(Reference).Show;
end
else
begin
Instance := TComponent(InstanceClass.NewInstance);
TComponent(Reference) := Instance;
try
Instance.Create(Self);
except
TComponent(Reference) := nil;
Instance.Destroy;
raise;
end;
if Instance is TForm then
begin
TForm(Instance).HandleNeeded;
end;
end;
end;
mas tbem acabou dando erro de acsses.............
Placido
Curtir tópico
+ 0
Responder
Posts
29/01/2007
Emerson Nascimento
você criou um formulário estilo MDIChild. para funcionar, deve haver um formulário do estilo MDIForm (geralmente a tela principal do sistema)
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)