Formulário recebendo parâmetros
Olá pessoal...
Estou com o seguinte problema.
Preciso chamar um formulário passando parâmetros para ele, tipo:
Form1.Create(´Gardel´);
Form1.Show;
Bom o que eu entendo sobre isso é que eu deveria colocar esses parâmetros no construtor, isso eu faria facil no C# mais aqui no delphi to tendo dificuldades.
Atualmente to criando um formulario assim:
Application.CreateForm(TForm1, Form1);
Form1.Show;
Alguém poderia me ajudar?
Aproveitando o espaço esse parâmetro que eu gostaria de passar é um array de elementos indefinidos tem como alguém exemplificar como faz isso no delphi?
Agradeço desde já,
Atá mais.
Estou com o seguinte problema.
Preciso chamar um formulário passando parâmetros para ele, tipo:
Form1.Create(´Gardel´);
Form1.Show;
Bom o que eu entendo sobre isso é que eu deveria colocar esses parâmetros no construtor, isso eu faria facil no C# mais aqui no delphi to tendo dificuldades.
Atualmente to criando um formulario assim:
Application.CreateForm(TForm1, Form1);
Form1.Show;
Alguém poderia me ajudar?
Aproveitando o espaço esse parâmetro que eu gostaria de passar é um array de elementos indefinidos tem como alguém exemplificar como faz isso no delphi?
Agradeço desde já,
Atá mais.
Gardel
Curtidas 0
Respostas
Fabianosales
03/10/2006
Olá Gardel, pelo que entendi, você quer passar um array dinâmico capaz de armazenar tipos de dados variáveis para o construtor de uma classe descendente de TForm, né?
Bom, você pode fazer isso assim:
[b:2c915f9f59]1º Declaração dos tipo[/b:2c915f9f59]
[b:2c915f9f59]2º - Implementação dos construtores...[/b:2c915f9f59]
Ok. Agora podemos ciar nossos formulários passando parâmetros pro seu construtor
Acho que isso deve resolver sua questão.
Espero ter ajudado.
Evoé...
Bom, você pode fazer isso assim:
[b:2c915f9f59]1º Declaração dos tipo[/b:2c915f9f59]
//Declaração do nosso tipo de array de conteúdo variável type TVariantArray = array of Variant; //declaração do nosso formulário "TMyFormClass" descendente de "TForm" type TMyFormClass = class(TForm) private public //o construtor padrão da classe constructor Create(AOwner: TComponent); overload; //construtor sobrecarregado... constructor Create(AOwner: TComponent; AParams: TVariantArray = nil); overload; end;
[b:2c915f9f59]2º - Implementação dos construtores...[/b:2c915f9f59]
//construtor original constructor TMyFormClass.Create(AOwner: TComponent); begin inherited Create(AOwner); end; //construtor sobrecarregado com nosso parâmetro constructor TMyFormClass.Create(AOwner: TComponent; AParams: TVariantArray); var i : integer; begin //instancia o formulário pelo método padrão inherited Create(AOwner); //realiza o processamento dos elementos do array APArams for i:=Low(AParams) to High(AParams) do begin //só a título de demonstração, //vamos exibir o valor de cada elemento do array AParams ShowMessage(Format(´Parâmetro ¬d = "¬s"´, [i, AParams[i]])); end; end;
Ok. Agora podemos ciar nossos formulários passando parâmetros pro seu construtor
var f : TMyFormClass; p : TVariantArray; begin SetLength(p,3); p[0] := 65456; //um valor inteiro... p[1] := ´Parâmetro 2´; //um valor string... p[2] := 35.00; //um valor real... f:= TMyFormClass.Create(Self, p); f.Show;
Acho que isso deve resolver sua questão.
Espero ter ajudado.
Evoé...
GOSTEI 0
Gardel
03/10/2006
Puxa...
É exatamente isso...
Muito obrigado.
Até mais
É exatamente isso...
Muito obrigado.
Até mais
GOSTEI 0