| Тема: Простой отчет о текущем действии программы. |
дата добавления: 06.07.2010 / 16:11 |
Автор темы:
spiller

Icq: 262121621
ответов: 91 вопросов: 11
|
Как сделать простенький отчет в программе, в котором бы выводилось текущее действие программы. Он будет размещен в отдельной вкладке. какой это должен быть элемент, и как туда делать последовательно записи?
Технологии: Visual Basic .NET
|
|
|
Ответ # 1
|
дата добавления: 06.07.2010 / 16:19 |
Автор ответа:
Aleksey Nemiro

Администратор Эксперт
Url: aleksey.nemiro.ru Icq: 261779681 Skype: alekseynemiro
ответов: 2918 вопросов: 462
|
Контрол со вкладками - TabControl. Отчет о действиях, наверное, в обычный TextBox можно писать :-) Хотя на его месте может быть все что угодно.
|
|
|
Ответ # 2
|
дата добавления: 06.07.2010 / 16:29 |
Автор ответа:
spiller

Icq: 262121621
ответов: 91 вопросов: 11
|
я тоже думаю, что обычный TextBox подойдет, с этим все понятно. а как в TextBox выводить текущее действие? последовательно, + в начале каждой записи, нужно указывать текущее время в формате hh.mm.ss
|
|
|
Ответ # 3
|
дата добавления: 06.07.2010 / 16:37 |
Автор ответа:
Aleksey Nemiro

Администратор Эксперт
Url: aleksey.nemiro.ru Icq: 261779681 Skype: alekseynemiro
ответов: 2918 вопросов: 462
|
в начало TextBox1.Text = Now.ToString("hh:MM:ss") & " > действие" & vbCrLf & TextBox1.Text либо в конец TextBox1.Text &= Now.ToString("hh:MM:ss") & " > действие" & vbCrLf
|
|
|
Ответ # 4
|
дата добавления: 06.07.2010 / 16:57 |
Автор ответа:
spiller

Icq: 262121621
ответов: 91 вопросов: 11
|
можно еще небольшой вопрос, тему уж не буду создавать. как сделать чтобы при нажатии контрола button выделялись все CheckBox?
| | Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click | |
CheckBox1.Checked | |
CheckBox2.Checked | |
End Sub |
|
|
чего не хватает?
|
|
|
Ответ # 5
|
дата добавления: 06.07.2010 / 17:05 |
Ответ # 6
|
дата добавления: 06.07.2010 / 17:20 |
Автор ответа:
spiller

Icq: 262121621
ответов: 91 вопросов: 11
|
Точно, спасибо :) а в цикл это как засунуть?)) потому что таких чекбоксов 24 получилось)
|
|
|
Ответ # 7
|
дата добавления: 06.07.2010 / 17:23 |
Автор ответа:
Aleksey Nemiro

Администратор Эксперт
Url: aleksey.nemiro.ru Icq: 261779681 Skype: alekseynemiro
ответов: 2918 вопросов: 462
|
Если из 24 нет не нужных чекбоксов, то так:
| | For each c As Control in Me.Controls | |
If c.GetType() Is GetType(CheckBox) Then | |
CType(c, CheckBox).Checked = True | |
End If | |
Next |
|
|
|
|
|
Ответ # 8
|
дата добавления: 06.07.2010 / 17:33 |
Автор ответа:
spiller

Icq: 262121621
ответов: 91 вопросов: 11
|
не нужных нет, но что-то не работает :( может быть потому что все checkbox у меня находяться в GroupBox1 ?
|
|
|
Ответ # 9
|
дата добавления: 06.07.2010 / 17:36 |
Автор ответа:
Aleksey Nemiro

Администратор Эксперт
Url: aleksey.nemiro.ru Icq: 261779681 Skype: alekseynemiro
ответов: 2918 вопросов: 462
|
Да, искать нужно в контейнере, в котором они лежат. Me - контейнер - форма, вместо Me, нужно GroupBox1 поставить.
|
|
|
Ответ # 10
|
дата добавления: 06.07.2010 / 21:29 |
Автор ответа:
spiller

Icq: 262121621
ответов: 91 вопросов: 11
|
в начало TextBox1.Text = Now.ToString("hh:MM:ss") & " > действие" & vbCrLf & TextBox1.Text либо в конец TextBox1.Text &= Now.ToString("hh:MM:ss") & " > действие" & vbCrLf а как сделать так, чтобы время было 24 формате, а не 12 ?
|
|
|
Ответ # 11
|
дата добавления: 06.07.2010 / 21:38 |
Ответ # 12
|
дата добавления: 06.07.2010 / 21:53 |
Автор ответа:
spiller

Icq: 262121621
ответов: 91 вопросов: 11
|
такая казалось бы мелочь, а так все меняет :))
теперь другой вопрос, есть 24 checkbox-а, по замыслу: checkbox1 интервал времени 00:00-01:00 checkbox2 интервал времени 01:00-02:00 и т.д. нужно получить следующее: проверяем какие checkbox-ы отмечены, затем сравниваем с текущим временем, и если время попадает в отмеченые нами интервалы, то программа продолжает работать, иначе ждем 20 минут и снова повторяем.
|
|
|
Ответ # 13
|
дата добавления: 06.07.2010 / 22:33 |
Автор ответа:
Aleksey Nemiro

Администратор Эксперт
Url: aleksey.nemiro.ru Icq: 261779681 Skype: alekseynemiro
ответов: 2918 вопросов: 462
|
Удобней использовать свойство Tag у CheckBox, хранить в нем целое число, которое будет содержать часы: 0, 1, 2, 3 ... 23 Даты можно проверять через DateDiff MsgBox(DateDiff(Hour, CheckBox1.Tag, Now)) Вместо Hour - хаур из перечисления.
If DateDiff(Hour, CheckBox1.Tag, Now) = 0 Then полночь
|
|
|
Ответ # 14
|
дата добавления: 06.07.2010 / 22:42 |
Автор ответа:
spiller

Icq: 262121621
ответов: 91 вопросов: 11
|
Вместо Hour - хаур из перечисления. это как понять? :)
|
|
|
Ответ # 15
|
дата добавления: 06.07.2010 / 22:51 |
Ответ # 16
|
дата добавления: 06.07.2010 / 22:53 |
Автор ответа:
spiller

Icq: 262121621
ответов: 91 вопросов: 11
|
Ошибка. Приведение строки "0" к типу "Date" является недопустимым. :)
|
|
|
Ответ # 17
|
дата добавления: 07.07.2010 / 11:02 |
Автор ответа:
Aleksey Nemiro

Администратор Эксперт
Url: aleksey.nemiro.ru Icq: 261779681 Skype: alekseynemiro
ответов: 2918 вопросов: 462
|
Вот что бывает, когда отвечаешь на вопросы по ночам :) Просто Hour проверять, без DateDiff If Now.Hour = CheckBox1.Tag Then полночь
|
|
|
Ответ # 18
|
дата добавления: 07.07.2010 / 14:18 |
Автор ответа:
spiller

Icq: 262121621
ответов: 91 вопросов: 11
|
а проверка, какой чекбокс отмечен?
| 001: | | 002: | | 003: | | 004: | | 005: | | 006: | | 007: | | 008: | | 009: |
| | If Checkbox1.Checked = True Then | |
If Now.Hour = CheckBox1.Tag Then | |
.......... | |
Else | |
Else If Checkbox2.Checked = True Then | |
If Now.Hour = Checkbox2.Tag Then | |
.......... | |
Else | |
End If |
|
|
но это же капец, 24 чекбокса так описывать.
|
|
|
Ответ # 19
|
дата добавления: 07.07.2010 / 14:27 |
Ответ # 20
|
дата добавления: 07.07.2010 / 14:44 |
Автор ответа:
spiller

Icq: 262121621
ответов: 91 вопросов: 11
|
так?
| | For each c As Control in GroupBox3.Controls | |
If CType(c, CheckBox).Checked = True Then | |
If Now.Hour = CType(c, CheckBox).Tag Then | |
.......... | |
End If | |
Next |
|
|
|
|
|
|