|
#1
|
|||
|
|||
Помощь по диплому
Следующая ситуация.
Нужно смоделировать Доменный процесс(Металлургия). Суть вопросы в следующем. В одной форме вводиться кол-во подачь( то сколько раз будет вводиться руда в начале плавки), после ввода колличества подачь(они вводяться с помощью ComboBox, т е выбираются из списка), в зависимости от того сколько будет введено (от 1 до 6) становяться видимыми еще несколько ComboBox (от 1 до 6) в которых выбирается вид руды ( всего 4 варианта Кокс, Агломерат, Окатыши, Флюсы), так же становяться видимыми рядом с соответствующим ComboBox соответствующий Edit в который вводиться кол-во тонн того или иного компонента. так вот надо что в другой форме отображалось в зависимости от выбора пользователя следующее: допустим пользователь выбрал 4 подачи следующего типа Агломерат - 2 тонны, Кокс-3 тонны, Окатыши - 1 тонна и еще раз Агломерат - 4 тонны. в открывшейся форме должно отобразиться следуещее "Подача агломерата 4 тонны", через некоторое время, "подача кокса 3 тонны", через тоже время "подача Окатышей 1 тонна", и еще через это же время "подача Агломерата 4 тонны", надо что отображалось все через один и тот же промежуток времени допустим через минуту, и с новой строки, причем весь предыдущий текст должен оставаться то есть в конце будет четыре строки. и еще это все должно повторяться допустим 10 раз, а так же пользователь в любое время может изменить кол-во подачь и их состав, и в случаи изменения должна появиться надпись "Подача изменена". |
#2
|
||||
|
||||
Киньте на форму компонент TTimer настройте его срабатывание каждую минуту и наслаждайтесь результатом.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
а можно поподробнее особенно о том какой компонент добавить на вторую форму что бы в нем выводились строки. и протаймер
|
#4
|
||||
|
||||
После того как поместите TTimer на форму установите в нем значение Interval = 60000, что соответствует 1 минуте. И выставите значение Enabled = True. Теперь с периодичность в 1 минуту у вас будет вызываться событие OnTimer в котором вы просто организуете вывод в (видимо в мемо) ваших данных думаю будет где-то так:
Код:
procedure TForm24.Timer1Timer(Sender: TObject); begin case ComboIndex of 1: Memo1.Lines.Add(ComboBox1.Text); 2: Memo1.Lines.Add(ComboBox2.Text); 3: Memo1.Lines.Add(ComboBox3.Text); 4: Memo1.Lines.Add(ComboBox4.Text); end; Inc(ComboIndex); if ComboIndex > 4 then ComboIndex := 1; end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
|||
|
|||
при исполнение вашего кода делфи ругается на ComboIndex и как активировать таймер по нажатию кнопки?
Заранее спасибо, ваши ответы полные и подробные |
#6
|
|||
|
|||
Спасибо разобрался, все заработало.
Но возникаеи вопрос который я уже писал, если пользователь изменит колличество подачь то поидеи должно измениться Case of с 4 допустим до 6! как можно это реализовать, кнопка об изменении находиться на этой же форме Заранее Спасибо! |
#7
|
||||
|
||||
Ну сделайте так:
Код:
procedure TForm24.Timer1Timer(Sender: TObject); begin case ComboIndex of 1: Memo1.Lines.Add(ComboBox1.Text); 2: Memo1.Lines.Add(ComboBox2.Text); 3: Memo1.Lines.Add(ComboBox3.Text); 4: Memo1.Lines.Add(ComboBox4.Text); 5: Memo1.Lines.Add(ComboBox5.Text); 6: Memo1.Lines.Add(ComboBox6.Text); end; Inc(ComboIndex); if ComboIndex > ComboCount then ComboIndex := 1; end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 23.05.2009 в 22:30. |
#8
|
|||
|
|||
Спасибо большое, а то я уже с кучей условий сделал)
|
#9
|
|||
|
|||
Извините еще вопрос.
Все нормально выводиться в поле Memo, но есть еще коечто, я сделал что бы не зависимо от кол-ва подачь они все проходят за минуту(интервал таймера пересчитывается в зависимости от кол-ва подач), надо что бы на этой же форме отображались часы, и в поле мемо выводилось не просто наименование подач и кол-во тонн, но и время во солько Например так: 0:15 Агломерат 5 тонн 0:30 Кокс 3 тонны 0:45 Флюсы 1 тонна 1:00 Окатыши и потом снова но время продолжает идти 1:15 Агломерат 1:30 Кокс 1:45 Флюсы 2:00 Окатыши и т.д. и надо чтобы весь список не зависимо от кол-ва подач и времени работы можно было сохранить в текстовый файл причем такой же структуры не могли бы вы подсказать Заранее Спасибо! |
#10
|
||||
|
||||
Время считай в какую нибудь переменную, выводи по таймеру. Вот как можно: (на форму кинуть Label и настроить шрифт по своему усмотрению)
Код:
var mytime:integer; //Вне процедуры ... ... procedure TForm24.Timer1Timer(Sender: TObject); const n=1; //Подстройте под себя var mins,secs:integer; TimeStr:string; begin ... ... MyTime:=MyTime+n; mins:=MyTime div 60; secs:=MyTime mod 60; TimeStr:=IntToStr(mins)+':'+IntToStr(secs); Label1.Caption:=TimeStr; ... end; Код:
Memo1.Lines.SaveToFile('C:/mytext.txt'); Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#11
|
|||
|
|||
Спасибо +++ поставил))) сейчас попробую!
|
#12
|
|||
|
|||
Теперь появилась след проблемма, есть два таймера один считае о отображает время, второй выводит инфу в мемо, как их синхронизировать, потому что задержка после запуска таймера и таймера вывода инфы большая и всегда разная, но как только выведеться первая инфа то потом все ок. т.е. задержка только перед первым выводом инфы
|
#13
|
||||
|
||||
А вы при старте приложения выставите значения интервала для обоих тармеров 0, и активируйте их, а в событиях каждого таймера укажите интервал индиаидуально. Стартуют они синхронно, а потом уже будут работать кажды по своему расписанию.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#14
|
|||
|
|||
Цитата:
|
#15
|
|||
|
|||
а можно каким нибудь образо сделать так чтобы определенная строка в поле мемо была выделенна жирным и большим шрифтом?
|