Procedimento para criar mais variáveis
Oi DevMedia.
Tenho precisado de um procedimento que possa fazer criar novas variáveis de uso publico do form. Porém não estou tendo muito sucesso. alguem saberia como faze-lo!?
por exemplo... tenhu uma classe:
No formulário tem um TButton que quando necessário, o evento OnClick do TButton irá criar uma nova variável do tipo TDrF. As variáveis so poderão ser destruídas se solicitadas para serem destruídas ou no fechamento do form.
Alguma idéia aí gente. to seco. :cry:
Tenho precisado de um procedimento que possa fazer criar novas variáveis de uso publico do form. Porém não estou tendo muito sucesso. alguem saberia como faze-lo!?
por exemplo... tenhu uma classe:
TDrF = Class private FNome: String; FLevel: String; public Property Nome: String read FNome write FNome; Property Level: Integer read FLevel write FLevel; end;
No formulário tem um TButton que quando necessário, o evento OnClick do TButton irá criar uma nova variável do tipo TDrF. As variáveis so poderão ser destruídas se solicitadas para serem destruídas ou no fechamento do form.
Alguma idéia aí gente. to seco. :cry:
.lg.
Curtidas 0
Respostas
Woinch
12/03/2009
Não entendi muito bem o que você quer fazer...
Mas caso você queira criar variáveis de forma dinâmica, sem declará-las todas antes no fonte, você pode utilizar vetores (arrays). Dê uma lida sobre arrays dinâmicas. Talvez ajude.
Mas caso você queira criar variáveis de forma dinâmica, sem declará-las todas antes no fonte, você pode utilizar vetores (arrays). Dê uma lida sobre arrays dinâmicas. Talvez ajude.
GOSTEI 0
.lg.
12/03/2009
Não entendi muito bem o que você quer fazer...
Mas caso você queira criar variáveis de forma dinâmica, sem declará-las todas antes no fonte, você pode utilizar vetores (arrays). Dê uma lida sobre arrays dinâmicas. Talvez ajude.
Vou pegar um livro para ver sobre.
Você entendeu certo. É criar variáveisde forma dinâmica sm declará-las antes no form.
Vou dar uma lida sobre. Qualquer informaçãoa mais é bem vinda. :wink:
Abraços,
.lg.
GOSTEI 0
Woinch
12/03/2009
Na parte de estrutura de dados você consegue muita coisa boa... Procure sobre listas e pilhas. Um exemplo de pilha é o próprio ArrayList. Você pode implementar você mesmo a sua classe, pois me parece ser bem simples o que você quer fazer. Mas veja um exemplo de como pode ser feito um método simples para adicionar itens a uma lista:
Para remover você pode fazer o processo contrário.
Caso necessite adicionar ou remover em qualquer posição e não somente no final você precisará além de aumentar o tamanho da lista, mover o conteúdo para a direita para que possa ser inserido outro Objeto no meio. Pode ser feito isso através de um for utilizando a propriedade Length(NomeArray) e um outro Array auxiliar. Se você necessita de ordenação dessa lista, você precisará definir um campo Chave e chamar um método que ordene esse array a partir desse campo.
Qualquer dúvida é só perguntar.
Espero ter ajudado...
SetLength(NomeArray, Length(NomeArray) +1); //aumenta o tamanho da lista NomeArray[Length(NomeArray) -1] := Objeto; //adiciona objeto na última posição da lista
Para remover você pode fazer o processo contrário.
Caso necessite adicionar ou remover em qualquer posição e não somente no final você precisará além de aumentar o tamanho da lista, mover o conteúdo para a direita para que possa ser inserido outro Objeto no meio. Pode ser feito isso através de um for utilizando a propriedade Length(NomeArray) e um outro Array auxiliar. Se você necessita de ordenação dessa lista, você precisará definir um campo Chave e chamar um método que ordene esse array a partir desse campo.
Qualquer dúvida é só perguntar.
Espero ter ajudado...
GOSTEI 0
.lg.
12/03/2009
E ajudou muito.
Agradeço.
[Tópico resolvido]
Att,
.lg.
Agradeço.
[Tópico resolvido]
Att,
.lg.
GOSTEI 0
Rodc
12/03/2009
Pode usar também um TList para guardar o ponteiro paras estas novas estruturas.
GOSTEI 0