Preencher comboBox do formulario

Delphi

08/01/2004

Caros amigos,

Estou estudando Orientação a Objetos e tenho a seguinte dúvida:

Estou criando uma Unit bem simples da seguinte forma como segue abaixo:

---------------------------------------------------------------------------------------------------------------------------
unit MinhaUnit;

interface

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

Type


// Tipo Pessoa será Enumerado
TTipoPessoa = (TpPessoaFisica, tpPessoaJuridica);

// Tipo Enumerado para definir as categoria de produto
TCategoriaProdutos = (cpArtigoEsportivo, cpMaterialEscritorio, cpVestuario, cpEletrodomestico);

// Tipo vai ser como conjuto
TCategoriaProdutospreferido = set of TCategoriaProdutos;

Cliente = Record
Nome: String;
Endereco: String;
DataNascimento: Tdata;
DataPrimeiraCompra: Tdata;
Tipo: TTipoPessoa;
CPFCnPJ: String;
CategoriaProdutosPreferido: TCategoriaProdutospreferido
end;

GrupoCliente = Array[1..100] of Cliente;

var
VTipo: TTipoPessoa;
VData: TData;
VCategoria: TCategoriaProdutos;
VCliente: Cliente;


implementation

end.

--------------------------------------------------------------------------------------------------------

Minha pergunta é:

Como fazer para utilizar ou melhor preencher meu comboBox do meu formulario com o valor TTipoPessoa ?

Mantmor

[b:3cab164462]Título editado pelo Moderador (AZ)[/b:3cab164462]


Mantmor

Mantmor

Curtidas 0

Respostas

Programaker

Programaker

08/01/2004

Fala MantMor! Seguinte: como esse tipo enumerado não é string, cê num pode jogar o valor direto(pelo menos até onde eu sei não).

Sendo assim, faça o seguinte - coloque estes valores nos itens da combo:

item 0 -> tpPessoaFisica,
item 1 -> tpPessoaJuridica

quando for ler uma variável do tipo TTipoPessoa, faça:

case VariavelTipoPessoa of
tpPessoaFisica : ComboBox1.ItemIndex := 0;
tpPessoaJuridica : ComboBox1.ItemIndex := 1;
end;

Até a proxima e espero ter servido pra alguma coisa!


GOSTEI 0
Cebikyn

Cebikyn

08/01/2004

O Programaker está certo, mas existe uma forma mais fácil:

Ao invés de usar um case...of, pode-se fazer:

ComboBox1.ItemIndex := Ord(VariavelTipoPessoa);


e ao contrário (este eu não testei, mas deve funcionar):

VariavelTipoPessoa := TTipoPessoa(ComboBox1.ItemIndex);


Para que os códigos funcionem, os items do ComboBox devem estar na mesma ordem que a declaração do TTipoPessoa.

Se quiser transformar string em tipo ordenado:

uses
  TypInfo;
...

VariavelTipoPessoa := TTipoPessoa(GetEnumValue(TypeInfo(TTipoPessoa), STRING))



GOSTEI 0
POSTAR