Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.03.2013, 19:05
Vitaliy92 Vitaliy92 вне форума
Прохожий
 
Регистрация: 14.03.2013
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Сombobox и memo

Ребята помогите пожалуйста.
Есть combobox, в которой есть строки (информация). И 2 поля Memo.
Нужно сделать так, что-бы при выборе определенной строки, из combobox, добавлялась в memo1, а в Memo2 выводилась определенная цифра, и она суммируется в отдельном Label.
Вот например:
1.Из combobox мы выбрали 2 строки, представим: "Машина_1" и "Машина_2"
2. Они появились в memo1. И автоматически заполняется в memo2 стоимость этих машин. (Эти цифры (Стоимость), мы прописываем заранее в memo 2)
3. При нажатии на кнопку "Посчитать" выводится в lable общая сумма.
Help!
Изображения
Тип файла: jpg 1.jpg (81.3 Кбайт, 5 просмотров)
Ответить с цитированием
  #2  
Старый 14.03.2013, 19:22
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,090
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

я бы сделал примерно так:
1. Создал бы специальный класс, в котором хранил бы связанную информацию.
2. Для добавления итемов в ComboBox использовать метод AddObject, вторым параметром в котором использовал бы ссылку на объект моего класса.
3. Для ComboBox надо включить режим выбора только из списка.
4. При выборе из ComboBox просто из связанного с итемом объекта выдергивал бы нужную информацию.
5. Суммировал бы сразу в динамике, без всяких там нажатий кнопок, просто по событию, на котором ты заполняешь Memo.
Ответить с цитированием
  #3  
Старый 14.03.2013, 20:11
Vitaliy92 Vitaliy92 вне форума
Прохожий
 
Регистрация: 14.03.2013
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Спасибо большое, но всё же, я в делфи 0, программу нужно сдавать по учёбе, а я много пропустил....мне только понятен 2 и 3 пункт.
Можете код примерно изложить? Что-бы хоть понятно было что писать.
Ответить с цитированием
  #4  
Старый 14.03.2013, 21:56
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,090
Версия 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;
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
Vitaliy92 (15.03.2013)
  #5  
Старый 15.03.2013, 00:07
Vitaliy92 Vitaliy92 вне форума
Прохожий
 
Регистрация: 14.03.2013
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Спасибо большое, за ценную информацию!)
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:32.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025