Fórum Function CarregaForm(TNameForm :TClass):Boolean; #350503
13/12/2007
0
[Pascal Error] UFuncoesControle.pas(528): E2007 Constant or type identifier expected
penso q existe uma maneira melhor, mas a idéia eh com 1 linha sempre executar a mesma função para carregar os forms
ps. eh uma aplicação MDI
Obrigado pela atenção t+ :)
Function CarregaForm(TNameForm :TClass):Boolean; var NameForm :TNameForm; begin try Screen.Cursor:=crHourGlass; NameForm := TNameForm.Create(NameForm); NameForm.WindowState := wsNormal; NameForm.Visible:=True; NameForm.Setfocus; Screen.Cursor:=crDefault; Result:=True; finally Result := False; end; end;
Silvagpe
Curtir tópico
+ 0Posts
13/12/2007
Massuda
Gostei + 0
13/12/2007
Silvagpe
e a unit esta adicionada ao projeto.
Gostei + 0
13/12/2007
Massuda
Gostei + 0
13/12/2007
Silvagpe
Hj as chamas de forms no sistema são feita da seguinte maneira:
procedure TFrmPrincipal.OrdemServicoClick(Sender: TObject); begin Screen.Cursor:=crHourGlass; FrmOrdemServicoConfeccao:=TFrmOrdemServicoConfeccao.Create(self); FrmOrdemServicoConfeccao.WindowState:= wsNormal; FrmOrdemServicoConfeccao.Visible:=True; FrmOrdemServicoConfeccao.Setfocus; Screen.Cursor:=crDefault; end
mas a idéia era criar uma função onde pude-se simplificar e tmb avisar caso o form não seja carregado, então fiz a seguinte alteração.
Codigo da Chamada :
procedure TFrmPrincipal.OrdemServicoClick(Sender: TObject); begin if not CarregaForm(TFrmOrdemServicoConfeccao) then ShowMessage(´Formulário não pode ser carregado´); end
Codigo da Função
Function CarregaForm(TNameForm :TClass):Boolean; var NameForm :TNameForm; begin try Screen.Cursor:=crHourGlass; NameForm := TNameForm.Create(NameForm); NameForm.WindowState := wsNormal; NameForm.Visible:=True; NameForm.Setfocus; Screen.Cursor:=crDefault; Result:=True; finally Result := False; end; end;
aki está o problema a função não esta correta e preciso de ajuda para finalizar ela.
:)
Gostei + 0
13/12/2007
Silvagpe
Procedure CarregaForm(NameForm :TForm; Classe:TFormClass); var Found, I:Integer; begin Found := -1; for I := 0 to Screen.FormCount - 1 do if Screen.Forms[I] is Classe then Found := I; if Found>=0 then Screen.Forms[Found].Show else begin try Screen.Cursor:=crHourGlass; NameForm := Classe.Create(Application); NameForm.WindowState := wsNormal; NameForm.Visible:=True; NameForm.Setfocus; Screen.Cursor:=crDefault; except ShowMessage(´Formulário não pode ser carregado.´); end; end; end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)