Preencher comboBox do formulario
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]
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
Curtidas 0
Respostas
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!
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
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:
e ao contrário (este eu não testei, mas deve funcionar):
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:
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