Тема: ComboBox и Edit
Показать сообщение отдельно
  #9  
Старый 10.09.2008, 22:26
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,097
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну куда ж подробнее.

Заполнение:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  ComboBox1.Items.Clear;
  ComboBox1.Itema.AddObject('1 квартал 2008',TObject(4063));
  ComboBox1.Itema.AddObject('2 квартал 2008',TObject(4120));
  ComboBox1.Itema.AddObject('3 квартал 2008',TObject(4254));
  ComboBox1.Itema.AddObject('4 квартал 2008',TObject(5000));
end;

При выборе элемента:

Код:
procedure TForm1.ComboBox1Change(Sender: TObject);
var
  C : Integer;
begin
  If ComboBox1.ItemIndex > -1 Then
    Begin
       Edit1.Text := IntToStr(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);
    End;
end;

Аесли ты про обертки, то там надо сделать класс и его экземпляры использовать при добавлении и при извлечении.
Код краткий, только для понимания принципа:

Код:
type
  TComboCurrency = class
  private
    FValue : Currency;
  public
    constructor Create(AValue : Currency); virtual;
    
    property Value : Currency read FValue write FValue;
  end;

constructor TComboCurrency.Create(AValue : Currency);
begin
  inherited Create;
  FValue := AValue;
end;

тогда код будет выглядеть так:

Заполнение:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  ComboBox1.Items.Clear;
  ComboBox1.Itema.AddObject('1 квартал 2008',TComboCurrency.Create(4063.10));
  ComboBox1.Itema.AddObject('2 квартал 2008',TComboCurrency.Create(4120.20));
  ComboBox1.Itema.AddObject('3 квартал 2008',TComboCurrency.Create(4254.30));
  ComboBox1.Itema.AddObject('4 квартал 2008',TComboCurrency.Create(5000.40));
end;

При выборе элемента:

Код:
procedure TForm1.ComboBox1Change(Sender: TObject);
var
  V : TComboCurrency;;
begin
  If ComboBox1.ItemIndex > -1 Then
    Begin
       V := ComboBox1.Items.Objects[ComboBox1.ItemIndex] As TComboCurrency
       Edit1.Text := V.Value;
    End;
end;
Ответить с цитированием