Fórum ComboBox - Valores para exibir e para processar #258094
12/11/2004
0
Obrigado.
Gleison_gomes
Curtir tópico
+ 0Posts
12/11/2004
Adilsond
Gostei + 0
12/11/2004
Adilsond
Gostei + 0
17/11/2004
Gleison_gomes
Mas há um jeito de eu exibir um texto e trabalhar com um valor tb em string, não como inteiro? Preciso exibir um nome amigável para o usuário e trabalhar com o nome do campo das tabelas... Por exemplo: quero exibir ´Nome do Aluno´, mas trabalhar no combo como ´nome_aluno´.
Obrigado.
Gostei + 0
17/11/2004
Repa
Gostei + 0
17/11/2004
Adilsond
ComboBox1.Items.AddObject(FieldByName(´XXXX´).AsString, TObject(LongInt(NewStr(FieldByName(´YYYY´).AsString))));
Pegando o valor:
strID := PString(ComboBox1.Items.Objects[ComboBox1.ItemIndex])^;
Voce deve liberar os objetos ao final ou a cada vez que for remontar a lista:
for I := 0 to ComboBox1.Items.Count - 1 do DisposeStr(PString(cbGroups.Items.Objects[i]));
Gostei + 0
17/11/2004
Adilsond
for I := 0 to ComboBox1.Items.Count - 1 do DisposeStr(PString(ComboBox1.Items.Objects[i]));
Gostei + 0
17/11/2004
Adilsond
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TMyComboObject = class
private
{ Private declarations }
fId: Integer;
fName: String;
public
{ Public declarations }
constructor Create(Id: Integer; Name: String);
property Id: Integer read fId;
property Name: String read fName;
end;
TForm1 = class(TForm)
Button1: TButton;
ComboBox1: TComboBox;
Edit1: TEdit;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
procedure ClearComboBox;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
constructor TMyComboObject.Create(Id: Integer; Name: String);
begin
fId := Id;
fName := Name;
end;
procedure TForm1.ClearComboBox;
var
I: Integer;
begin
if ComboBox1.Items.Count > 0 then
begin
for I := 0 to ComboBox1.Items.Count - 1 do
TMyComboObject(ComboBox1.Items.Objects[I]).Free;
ComboBox1.Clear;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ClearComboBox;
ComboBox1.Items.AddObject(´Elemento 1´, TMyComboObject.Create(1,´Um´));
ComboBox1.Items.AddObject(´Elemento 2´, TMyComboObject.Create(2,´Dois´));
ComboBox1.Items.AddObject(´Elemento 3´, TMyComboObject.Create(3,´Tres´));
ComboBox1.Items.AddObject(´Elemento 4´, TMyComboObject.Create(4,´Quatro´));
ComboBox1.Items.AddObject(´Elemento 5´, TMyComboObject.Create(5,´Cinco´));
ComboBox1.Items.AddObject(´Elemento 6´, TMyComboObject.Create(6,´Seis´));
ComboBox1.Items.AddObject(´Elemento 7´, TMyComboObject.Create(7,´Sete´));
ComboBox1.Items.AddObject(´Elemento 8´, TMyComboObject.Create(8,´Oito´));
ComboBox1.Items.AddObject(´Elemento 9´, TMyComboObject.Create(9,´Nove´));
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
Edit1.Text := IntToStr(TMyComboObject(ComboBox1.Items.Objects[ComboBox1.ItemIndex]).Id);
Edit2.Text := TMyComboObject(ComboBox1.Items.Objects[ComboBox1.ItemIndex]).Name;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
ClearComboBox;
end;
end.Gostei + 0
25/12/2004
Gleison_gomes
Criei o compo de acordo com sua primeira dica, obrigado!
Porém, qdo vou recuperar o valor selecionado, estão vindo caracteres especiais (´#0000´)que estão atrapalhando ao concatenar para formar uma expressão. O que fazer para ´filtrar´ estes caracteres?
Obrigado.
Gostei + 0
25/12/2004
Adilsond
Gostei + 0
25/12/2004
Gleison_gomes
Realmente era na geração da string.
Obrigado!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)