Array
(
)

Passar parametros para um form

Andremelim
   - 03 set 2004

Gostaria de passar parametro para um form (não é possivel que não consiga fazer isso no Delphi!). Já notei que tem várias ocasiões que, passando parametros pro form, melhoraria significativamente os meus sistemas). Exemplo: Tenho um sistema que possui varios graficos (frmGraficoVendasPeriodo,frmGraficoVendasVendedor, etc) e um form frmPersonalizaGrafico (que por sua vez, muda as caracteristicas do grafico, como cor, estilo, etc). O problema é que dentro do frmPersonalizaGrafico tenho que ficar testando qual foi o form que o chamou para mudar o dbchart desse form:

if frmPersonalizaGrafico.Tag = 0 then
frmGraficoVendasPeriodo.DBChart1.series ..... (faz algo)
else if frmPersonalizaGrafico.Tag = 1 then
frmGraficoVendasVendedor.DBChart1.series ..... (faz algo)

Ou seja, é justamente esses IFs que eu queria elimiar. Simplesmente eu passaria como parametro para esse form o dbchart do form de origem e o form se vira para configurar o dbchart passado como parametro.
Se vc souber como fazer isso, eu agradeceria muito se vc me mandasse uma resposta. Grato pela sua atenção!!!


Ipc$
   - 03 set 2004

Ao invés de colocar o Tag em 0, 1, ...
Coloque o DBChart nele:
fmPersonaliza.Tag := Integer(DBChartx);
No lugar dos Ifs vc utiliza:
TDBChart(fmPersonaliza.Tag).series....faz algo


Paulo_amorim
   - 03 set 2004

Olá

Pode-se fazer o form receber um parâmetro no Create dele:

#Código

constructor Create( Owner: TComponent; MeuParametro: MeuTipo); reintroduce; overload;


Daí nesse caso você ahcma com o parametro adequado

Espero que ajude
Até+


Andremelim
   - 03 set 2004

Olá Paulo,

Em primeiro lugar gostaria de te agradecer pela sua ajuda. Se nao for te pedir muito gostaria que vc mandasse em pequeno exemplo (código do form no qual vc introduz esse trecho de código que vc mencionou). Eu estou em dúvida de como colocar isso no form. Grato.


Paulo_amorim
   - 03 set 2004

Olá

Eu não compilei pra ver pois tava sem Delphi, mas deve funcionar. Caso não,poste aqui que a gente ajuda, OK? :D

Claro, coloque as outras procedures como adequado

#Código

unit Form1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms;

type
TForm1 = class(TForm)

{ estou supondo que teu parametro eh TDBChart, vc põe o que voce quiser }
constructor Create(AOwner: TComponent; Grafico: TDBChart); reintroduce;

private
{ Private declarations }
MeuGrafico: TDBChart;
public
{ Public declarations }
end;

implementation

{$R *.DFM}

constructor TForm1.Create(AOwner: TComponent; MeuForm: TForm);
begin
inherited Create (AOwner);
{ Vc deve setar esse parâmetro Grafico a uma variável para usar na Unit inteira.
MeuGrafico := Grafico;
end;
end.


Até+