|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Помогите пожалуйста с программой в дельфи
суть проблемы: выбираю в 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
|
||||
|
||||
Перед тем как что-то добавлять в мемо, нужно вызвать Memo.Clear
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#3
|
|||
|
|||
мне надо, чтобы предыдущие строчки в Memo сохранялись
|
#4
|
||||
|
||||
Тогда надо проверять сколько строчек в мемо и при превышении лимита запрещать их туда добавлять
Код:
if form2.Memo1.Lines.Count < 5 then form2.Memo1.Lines.Add(inttostr(ch)+')'+spec); Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#5
|
|||
|
|||
тоже не то =D
уже поняла, что предыдущий итеминдекс остается выбранным и поэтому увеличивается отчёт в мемо. теперь вопрос стоит конкретнее: как обнулять итеминдекс? ну то есть делать так, чтобы он не был выбран |
#6
|
||||
|
||||
Тогда наверное нужно после добавления в мемо очищать строку комбобокса
Код:
form2.ComboBox.Text:= ''; Оффтоп: Всё равно логики отследить так и не удаётся, ускользает мысль Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#7
|
|||
|
|||
спасибо, что откликаешься на мои сообщения)))
я так и не придумала нормальную формулировку своего вопроса =D завтра препода буду доставать |
#8
|
||||
|
||||
Чисто методом тыка, всё же просёк алгоритм c ляляля :-0 даже ошибку смоделировал похожую на оригинал - просто в клике кнопки два раза выполнялось условие, вот переработка, проверьте
Код:
procedure TForm1.Button1Click(Sender: TObject); begin inc(ch); if ComboBox6.ItemIndex = 0 then Memo1.Lines.Add(IntToStr(ch) + ')' + ComboBox6.Text) else if ComboBox7.ItemIndex = 0 then Memo1.Lines.Add(IntToStr(ch) + ')' + ComboBox7.Text); end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |