GARANTIR DESCONTO

Fórum Function CarregaForm(TNameForm :TClass):Boolean; #350503

13/12/2007

0

Oi estou tentando executar essa função mas o delphi da o seguinte erro.

[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

Silvagpe

Responder

Posts

13/12/2007

Massuda

Falta por uma unit no uses da sua unit UFuncoesControle.pas. Pode ser a Windows, mas você precisa dizer em qual das linhas que você mostrou o erro ocorre.


Responder

Gostei + 0

13/12/2007

Silvagpe

o erro ocoreu na linha - > var NameForm :TNameForm;
e a unit esta adicionada ao projeto.


Responder

Gostei + 0

13/12/2007

Massuda

Function CarregaForm(TNameForm :TClass):Boolean; var NameForm :TNameForm;
Se você não errou na digitação, o compilador imagina que TNameForm é um parametro da CarregaForm do tipo TClass, logo a linha seguinte não faz sentido.


Responder

Gostei + 0

13/12/2007

Silvagpe

Vou tentar explicar melhor a situação
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.
:)


Responder

Gostei + 0

13/12/2007

Silvagpe

vlw a ajuda jah consegui resolver ^^

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;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar