Procedimento para criar mais variáveis

Delphi

12/03/2009

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:
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.

.lg.

Curtidas 0

Respostas

Woinch

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.


GOSTEI 0
.lg.

.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

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:

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.

.lg.

12/03/2009

E ajudou muito.
Agradeço.

[Tópico resolvido]
Att,
.lg.


GOSTEI 0
Rodc

Rodc

12/03/2009

Pode usar também um TList para guardar o ponteiro paras estas novas estruturas.


GOSTEI 0
POSTAR