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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.05.2013, 21:13
Myrik Myrik вне форума
Прохожий
 
Регистрация: 22.05.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Помогите пожалуйста с программой в дельфи

суть проблемы: выбираю в ComboBox1 первую строчку, открывается ComboBox7, там тоже выбираю первую строчку, в Memo выводится отчёт: "1) ляляля". затем выбираю в ComboBox1 вторую строчку, открывается ComboBox6, там выбираю первую строчку, в Memo выводится уже вот такой отчёт: "2) ляляля 2) ляляля". если продолжаю переключать комбобоксы, то отчёт в Мемо утраивается, учетверяется и т.д.. В чём ошибка в коде программы?

вот сам код:
Код:
procedure TForm2.ComboBox1Change(Sender: TObject); 
begin 
 if form2.ComboBox1.ItemIndex=0 then 
 begin 
 form2.Button1.Visible:=true; 
 form2.ComboBox6.Visible:=false; 
 form2.ComboBox7.Visible:=true; 

 end; 
 if form2.ComboBox1.ItemIndex=1 then 
 begin 
 form2.Button1.Visible:=true; 
 form2.ComboBox6.Visible:=true; 
 form2.ComboBox7.Visible:=false; 
 end; 
end; 

procedure TForm2.Button1Click(Sender: TObject); 
begin 
 ch:=ch+1; 
 if form2.ComboBox6.ItemIndex=0 then 
 begin 
 spec:=form2.ComboBox6.Items[0]; 
 form2.Memo1.Lines.Add(inttostr(ch)+')'+spec); 
 end; 
 if form2.ComboBox7.ItemIndex=0 then 
 begin 
 spec:=form2.ComboBox7.Items[0]; 
 form2.Memo1.Lines.Add(inttostr(ch)+')'+spec); 
 end; 
end;

Последний раз редактировалось Myrik, 22.05.2013 в 21:26.
Ответить с цитированием
  #2  
Старый 22.05.2013, 21:15
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Перед тем как что-то добавлять в мемо, нужно вызвать Memo.Clear
Ответить с цитированием
  #3  
Старый 22.05.2013, 21:20
Myrik Myrik вне форума
Прохожий
 
Регистрация: 22.05.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

мне надо, чтобы предыдущие строчки в Memo сохранялись
Ответить с цитированием
  #4  
Старый 22.05.2013, 21:38
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Тогда надо проверять сколько строчек в мемо и при превышении лимита запрещать их туда добавлять

Код:
if form2.Memo1.Lines.Count < 5 then form2.Memo1.Lines.Add(inttostr(ch)+')'+spec);
Ответить с цитированием
  #5  
Старый 22.05.2013, 22:00
Myrik Myrik вне форума
Прохожий
 
Регистрация: 22.05.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

тоже не то =D
уже поняла, что предыдущий итеминдекс остается выбранным и поэтому увеличивается отчёт в мемо. теперь вопрос стоит конкретнее: как обнулять итеминдекс? ну то есть делать так, чтобы он не был выбран
Ответить с цитированием
  #6  
Старый 22.05.2013, 22:12
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Тогда наверное нужно после добавления в мемо очищать строку комбобокса
Код:
form2.ComboBox.Text:= '';

Оффтоп:
Всё равно логики отследить так и не удаётся, ускользает мысль
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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