![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Подскажите, пожалуйста, как правильно произвести сложение цифровых значений Combobox-ов.
При сложении у меня выдает результат сложения значений ItemIndex, которые выставлены по умолчанию в Combobox, нужно, чтоб при изменении значений автоматически менялся результат Edit1. Код:
Edit1.Text:=IntToStr(StrToInt(Combobox1.Text)+StrToInt(Combobox2.Text)); Спасибо. |
#2
|
||||
|
||||
![]() засунь этот код в OnChange ComboBox-ов
|
#3
|
|||
|
|||
![]() Ммм...извините, не совсем побял, вернее совсем не понял...
Не обьявлял ничего combobox-ам перед строкой сложения, т.е. берется значение текста combobox как есть, если нетрудно, покажите, пожалуйста, как засунуть в onChange... спасибо |
#4
|
||||
|
||||
![]() в ObjectInspector-е, на вкладке Events, найди OnChange, кликни два раза по этой строке и появится процедура, вот в неё и вписывай свой код:
Код:
procedure TForm1.ComboBox1Change(Sender: TObject); begin Edit1.Text:=IntToStr(StrToInt(Combobox1.Text)+StrToInt(Combobox2.Text)); end; |
#5
|
|||
|
|||
![]() Спасибо, сложение получилось!
Возникла новая проблема при чтении данных результата, если считать результат, не изменяя значение комбобоксов, результат в окошке Edit1 показывает 2, т.е. результат сложения индексов комбобоксов, при изменении значения комбобоксов результат получается правильный... Подскажите, пожалуйста, как считать результат в этом случае. Так считываю и записываю: Чтение: Код:
Edit1.text:=main.ini.ReadString(SECT,'n6',''); Combobox1.ItemIndex:=Combobox1.Items.IndexOf(main.ini.readstring(SECT,'n20','')); Combobox2.ItemIndex:=Combobox2.Items.IndexOf(main.ini.readstring(SECT,'n21','')); Запись: Код:
main.ini.WriteString(Nombres_PPL.Text,'n6',Edit1.Text); main.ini.WriteString(Nombres_PPL.Text,'n20',Combobox1.Text); main.ini.WriteString(Nombres_PPL.Text,'n21',Combobox2.Text); Так же возникла проблема при чтении и записи данных с Datetimepicker, записывается изначально выбранная дата, при попытке редактировать дата меняется автоматически на дату создания календаря (17.10.2010 в моем случае) и невозможно изменить поле и перезаписать дату... Запись: Код:
if length(DateTimePicker1.Format)>0 then main.ini.WriteString(Nombres_PPL.text,'n3',formatdatetime('dd/mm/yyyy', (DateTimePicker1.Date))) Чтение: Код:
DateTimePicker1.Format:=main.ini.ReadString(SECT,'n3',''); lmikle: Все. Дальше буду карать за неиспользование тегов!!! Спасибо. |
#6
|
||||
|
||||
![]() попробуй так:
Код:
// запись Main.Ini.WriteString('SECT','n6',Edit1.Text); Main.Ini.WriteInteger('SECT','n20',ComboBox1.ItemIndex); Main.Ini.WriteInteger('SECT','n21',ComboBox2.ItemIndex); Main.Ini.WriteDate('SECT', 'n3', DateTimePicker1.Date); // чтение Edit1.Text := Main.Ini.ReadString('SECT','n6',''); ComboBox1.ItemIndex := Main.Ini.ReadInteger('SECT','n20',0); ComboBox2.ItemIndex := Main.Ini.ReadInteger('SECT','n21',0); DateTimePicker1.Date := Main.Ini.ReadDate('SECT', 'n3', StrToDate('24.10.2010')); |
#7
|
|||
|
|||
![]() Заработали пикеры, их 2, спасибо...
Значения комбобоксов как и ранее без изменений, считываются, но значение поля результата сложения считывается 2, т.е. индекс по умолчанию, для того чтоб изменить данные, приходится менять значение комбобокса любого... Смысл программы: Вводятся данные различные людей с формы ввода, при клике на человеке открывается такая же форма что и при вводе с уже введенными данными, которые нужно изменять иногда. Очень буду благодарен, если поможете довести до ума, в delphi не силен, редактирую базу телефонного справочника, больше с html и анимацией работаю... Спасибо. Последний раз редактировалось doctordradd, 25.10.2010 в 23:21. |