• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

xenupy

Array de Formularios

3 mensagens neste tópico

basicamente quero abrir pequenos post its no meu frmMain estas notas têm um x e um y que são as coordenadas do form, e tem uma mensagem é claro... Esta tudo guardado numa base de dados sqlserver2005.

Ao carregar num botao vao aparecendo novas frms mas como nao estao indexadas nao consigo guardar os seus reais valores, e quando fecho uma a outra fica lá (e se fecho esta o prog crasha porque nao existe uma ligação directa destre form â memoria como é obvio)

Eu gostava de saber como é que faria um array desdes formularios, ou se souberem de outra maneira agradecia...

Abraços, estou a gostar desta comunidade ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A forma mais simples é teres uma variavel do tipo T..... que e a class da form dos post its. Depois o que tens de fazer é o seguinte:

P. Ex.

var
  x: TPostIt;
  List: TObjectList;  // Isto tem de ser global a unidade
begin
  x := TPostIt.Create(Self);  
  x.Parent := Self; // ATENÇÂO DESTA MANEIRA SO VÂO MESMO APARECER DENTRO DA TUA FORM QUE JA ESTEJA CRIADA
  x.top := //ao que vier da bd
  x.left := //ao que vier da bd
  x.Show;
  List := TObjectList.Create(False);  // ISTO TEM DE SER FEITO LOGO NO INICIO DA APLICACAO E DEPOIS NO FIM E FEITO O List.Clear e FreeAndNil(List)
  List.Add(x);
  x.Tag := List.Count - 1;  // ISTO E APENAS UMA MANEIRA SIMPLES DE SABERES QUAL O INDEX DESTA FORM DENTRO DA LISTA   
end;

No OnClose da class TPostIt, ou seja da form de post it original é só fazer

  List.Remove(Self.Tag);

Penso que isto deve ajudar, não garanto que seja td tal e qual aqui está, poruqe foi feito um bocado de cabeça... mas qualquer duvida e so perguntar...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Amigo nao sei se é bem isto que quer

//crie um array global

arrayForm1 : Array [0..20{numero instancias do form}] Of TForm1{Form pretendido};

//Depois use assim

//use um {for} para verificar o indice {i} e para verificar se o {indice da array} é <> nil depois use assim para criar o form

//No Form1 crie duas variaveis publicas {a x,y:o que quiser;}

//Para chamar o seu form da array e passar os seus valores

Application.CreateForm(TForm1, arrayForm1{i});

arrayForm1{i}.x := 'seu valor1';

arrayForm1{i}.y := 'seu valor2';

arrayForm1{i}.show;//Mostra

//use assim para apagar

arrayForm1{i} := nil;

era isso?

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora