Fórum Parâmetro entre forms #295370

13/09/2005

0

Saudações, amigos programadores.

Estou tentando enviar um parâmetro entre dois forms com o seguinte código:

  with Tform1.Create(self) do
  begin
    stringdoTform1 := Self.DatasetCampoDaTabela.AsString;
  end;


Porém, ele me levanta a seguinte exceção: ´Cannot change Visible in OnShow or OnHide.´
Alguém sabe resolver ou então conhece uma outra maneira de enviar um parâmetro para outro form :?:


Lero

Lero

Responder

Posts

14/09/2005

Nandolh

Porque vc não reescreve o método create do form que deve receber o parâmetro.

Ex.:
constructor Create(AOwner: TComponent; xDataBase: TSQLConnection;Param: integer); reintroduce; overload;

constructor TfrmCadastroContrato.Create(AOwner: TComponent;
xDataBase: TSQLConnection;Param: integer);
begin
inherited Create(AOwner);
Conexao := xDataBase;
XParam := Param;
end;


Responder

Gostei + 0

19/09/2005

Lero

Mas onde eu devo colocar? Eu colokei no form padrão q é pai dos outros forms do projeto, mas ele não aceita qdo eu vou compilar. Dá o erro
[Error] uLogin.pas(54): There is no overloaded version of ´Create´ that can be called with these arguments

Eu colokei no public, depois tentei declarando na classe e dá sempre esse erro. Só pra confirmar o código é
constructor Create(AOwner: TComponent; User: string); reintroduce; overload;


Obrigado
Leomar de Rossi Ferreira


Responder

Gostei + 0

19/09/2005

Massuda

Eu colokei no form padrão q é pai dos outros forms do projeto...
O que você quer dizer com ´pai´... você herdou seus outros forms desse form padrão ou esse form padrão é o fsMDIForm do seu projeto? Do jeito que você fez só vai funcionar no primeiro caso.


Responder

Gostei + 0

19/09/2005

Lero

Boa tarde, Massuda.
Não é MDI, não. É um form pai ´padrão´. Qdo adiciono outro form ao projeto, ao invés de adicionar o form comun do delphi, eu coloco esse q já tem uma programção necessária para todas as telas.
Aí eu tentei implementar esse create nele para utilizar em todos os forms, mas não estou conseguindo.


Responder

Gostei + 0

19/09/2005

Massuda

...Qdo adiciono outro form ao projeto, ao invés de adicionar o form comun do delphi, eu coloco esse q já tem uma programção necessária para todas as telas...
Você está criando esses forms filhos usando [b:3b82c2e74d]File|New|seu_projeto[/b:3b82c2e74d]? Nesse caso, você marcou a opção Copy ou Inherit? Só forms filhos criados usando Inherited são realmente derivados do form padrão.


Responder

Gostei + 0

19/09/2005

Lero

Eles são inherited.


Responder

Gostei + 0

19/09/2005

Massuda

Relendo o tópico, percebi que você não precisa declarar o overload...
constructor Create(AOwner: TComponent; User: string); reintroduce;



Responder

Gostei + 0

19/09/2005

Lero

Blz. Obrigado, Massuda. Mas eu não entendi pq não pode deixar o overload.


Responder

Gostei + 0

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

Aceitar