Тема: Сombobox и memo
Показать сообщение отдельно
  #4  
Старый 14.03.2013, 21:56
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

1. Для того, что бы уметь создавать объекты (экземпляры класса), нужно этот класс иметь. Его надо написать. В твоем случае можно обойтись чем-то минимальным, а для минимизации кода добавить параметризованный конструктор.
2 и 3 понтны, пропускаю.
4. Ну и что тут непонятного. Ты в п. 2 при добавлении итема уже положил в тот же список объект с данными. Ну и доставай данные из этого объекта.
5. тоже не вижу проблемы.
Короч, некоторое описание в виде кода (условное). Предполагаем, что есть comboBox и кнопка, по которой добавляется значение в 2 memo.
Код:
type 
  TForm1 = class(TForm)
    ComboBox1 : TComboBox;
    Memo1 : TMemo;
    Memo2 : TMemo;
    Label1 : TLabel;
    Button1 : TButton;
    ...
  end;

implementation

type
  TMyData = class
    CarName : String;
    CarPrice : Currency;
    constructor Create(AName : String; APrice : Currency); virtual;
  end;

constructor TMyData.Create(AName : String; APrice : Currency);
begin
  inherited Create;
  CarName := AName;
  CarPrice := APrice;
end;

procedure TForm1.FormCreate(Sender : TObject);
begin
  ComboBox1.Items.Clear;
  ComboBox1.Items.AddObject('Car1',TMyData.Create(Car1,10000));
  ComboBox1.Items.AddObject('Car2',TMyData.Create(Car2,15000));
  ComboBox1.Items.AddObject('Car3',TMyData.Create(Car3,20000));
  Label1.Caption := 0;
  Memo1.Lines.Clear;
  Memo2.Lines.Clear;
end;

procedure TForm1.Button1Click(Sender : TObject);
var
  Obj : TMyData;
  Sm :  Currency;
begin
  If ComboBox1.ItemIndex > -1 Then
    Begin
      Obj :=  ComboBox1.Items.Objects[ComboBox1.ItemIndex] As TMyData;
      Memo1.Lines.Add(Obj.CarName);
      Memo2.Lines.Add(CurrToStr(Obj.CarPrice));
      Sm := strToCurr(Label1.Caption);
      Sm := Sm + Obj.CarPrice;
      Label1.Caption := CurrToStr(Sm);
    End;
end;
Ответить с цитированием