![]() |
|
Модераторы: mihanik |
![]()
|
|
| price |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 3.6.2008 Репутация: нет Всего: нет |
Здравствуйте всем. Подскажите, пожалуйста, как сделать, чтобы текст на кнопке менялся раз в секунду(чтобы было видно, что текст меняется) (предположим, циферки бежали на кнопке 1,2,3,4...), пока на эту кнопку не нажмёшь.
Вот 10% моего кода. Private Sub CommandButton1_Click() If run25 = True Then CommandButton1.Caption = "stopped" run25 = False Else While (True) i = i+1 CommandButton1.Caption = i Wend End If End Sub Что и где нужно менять и добавлять? Одновременно, подскажите, пожалуйста, как сделать, чтобы кушалось не 100% процессорного времени, а гораздо меньше. Заранее спасибо. |
|||
|
||||
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: 7 Всего: 15 |
Между While и Wend поставить DoEvents? Сам я этой командой не пользовался (необходимости не было), но вроде она для таких случаев...
Добавлено через 56 секунд Кстати, а ничего, что цикл у вас бесконечный получается??? (в такой записи) -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
| price |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 3.6.2008 Репутация: нет Всего: нет |
Большущее спасибо!!!!
Цикл - верно, бегает, для меня заковырка, как правильно его останавливать. Сделал процедуру вот такую, она работает. Только лишь подскажите, пожалуйста, грамотно ли с точки зрения написания кода (не лишь бы тяп-ляп, а чтобы грамотно): Private Sub CommandButton1_Click() If run25 = True Then CommandButton1.Caption = "stopped" run25 = False Else run25 = True Randomize While (run25) DoEvents i = i+1 CommandButton1.Caption = i Wend End If End Sub Работает код и из While оно выходит, потому что по очередному нажатию на кнопку, оно входит в процедуру CommandButton1_Click и значение run25 меняется на False. Легко ли догадаться до такой реализации, элегантная это реализация или безграмотная? Спасибо. Это сообщение отредактировал(а) price - 3.6.2008, 23:47 |
|||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 7 Всего: 49 |
Все верно, при условии что переменные run25 и i были объявлены ранее на уровне модуля.
-------------------- Я желаю всем Счастья! |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
If run25 = True Then эквивалентно If run25 Then
Вместо Randomize, возможно, надо использовать Randomize Timer - иначе всегда генерится одна и та же последовательность. В коде нет полезной нагрузки (меняющаяся надпись не в счет) - посему на вопрос ответить однозначно будет затруднительно. Но скорее следует объявить подход безграмотным - он допускает повторный вызов метода (клик по батону) до окончания работы предыдущего вызова. Следовало бы вынести выполнение функции в таймер, запускаемый нажатием этой кнопки. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: 7 Всего: 15 |
Обычно делают так, чтобы переменная, от значения которой зависит выход из цикла, менялась в самом цикле, а не неизвестно где и при каких обстоятельствах. -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
![]()
|
| Правила форума "Программирование, связанное с MS Office" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |