|
|
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
Добрый день. Помогите, пожалуйста, советом. Есть проверка на лицензию, пусть будет переменная A. Так вот, нужно написать условие в Delphi 6, чтобы к "телу" программа проходила только в том случае, если A>0. Но! Важно и то, чтобы при A<1 программа просто ждала, пока A не будет больше 0; и когда вновь станет больше 0, то снова пойдёт "гулять" по циклу. Это возможно сделать стандартными средствами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 11:20:13 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
RyuuЭто возможно сделать стандартными средствами? Нет, тут программировать надо. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 12:01:33 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
Туплю. Решено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 12:03:27 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, если интересно. Код: plsql 1. 2. 3. 4. А дальше собственно цикл, который требует GetXMLFreeLicenseCount > 0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 12:05:40 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
Отличный пример как не надо делать. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 12:49:23 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
Ryuu, Это делается через потоки. Читай про потоки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 12:52:34 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
Valery_B, ок. Dimitry Sibiryakov, почему, если закладка просто на всякий случай? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 13:35:23 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
Ryuuпочему, если закладка просто на всякий случай? Потому что ProcessMessages и Sleep в одном цикле это ситуация из разряда "либо крестик сними, либо трусы надень". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 13:48:04 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
Ryuu, Закладка граблей для последующего наступания? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 13:48:58 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
И всё же никто из присутствующих не объяснил причину, почему это "плохо". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 13:52:42 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
Ryuu, Какой конкретно результат ожидается от Application.ProcessMessages ? Вот с какой целью эта строчка написана? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 13:55:43 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
Leo Pevzner, авторАналогично, программа, выполняющая длительные вычисления, может выглядеть зависшей, так как даже сообщения на перемещение её окна или нажатия на кнопки не будут обработаны, пока вычисления не будут закончены. Поэтому нужно либо выполнять вычисления в отдельном потоке, либо периодически выполнять Application.ProcessMessages. Однако, в этом случае нужно учитывать, что выполнение этого метода несколько тормозит выполнение программы, и его вызов не должен быть слишком частым. Я чего-то не понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 13:59:01 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
RyuuИ всё же никто из присутствующих не объяснил причину, почему это "плохо". Мат пользователей тебе объяснит доходчиво. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 14:01:44 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, супер ответ, другого не ожидал. И это не та программа, где "подвисание" кому-то критично. Им нужно нажать на кнопку и ждать, когда программа выполнится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 14:04:10 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
RyuuLeo Pevzner, авторАналогично, программа, выполняющая длительные вычисления, может выглядеть зависшей, так как даже сообщения на перемещение её окна или нажатия на кнопки не будут обработаны, пока вычисления не будут закончены. Поэтому нужно либо выполнять вычисления в отдельном потоке, либо периодически выполнять Application.ProcessMessages. Однако, в этом случае нужно учитывать, что выполнение этого метода несколько тормозит выполнение программы, и его вызов не должен быть слишком частым. Я чего-то не понимаю? Да. Предположим, что во времы выполнения этого цикла, пользователь нажмет на крестик и приложение получит сообщение WM_CLOSE. Давайте подумаем, что после этого должно произойти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 14:18:46 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
Leo Pevzner, отвечу вопросом на вопрос, зачем ему это делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 14:35:14 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
RyuuLeo Pevzner, отвечу вопросом на вопрос, зачем ему это делать? Как показывает практика, по отношению к пользователю вопросы "зачем" и "почему" имеют только один ответ: "потому что может" (С). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 15:12:36 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
кстати именно это самый частый вариант для таких программ, где вроде все работает, но как то странно... более того, пользователь сначала еще пару раз нажмет эту же кнопку, потому что может, из-за Application.ProcessMessages и только потом (а в приложении уже к этому времени и так полная разруха) он еще и на крестик надавит и даже не раз, ибо отклика не будет )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 15:45:25 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
все что нужно засовывайте в поток. кнопку - в состояние Enabled:=false; поток может время от времени через Synchronize() обновлять что-нибудь на форме (при этом форма будет абсолютно доступна) в событии потока OnTerminate делайте все что нужно по окончании потока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 15:48:01 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
Ryuu, делай, потом нам расскажешь, почему нельзя было. каждый должен набить свои шишки сам. бесполезно кого-то в чем-то убеждать, давно понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 15:54:43 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
RyuuИ всё же никто из присутствующих не объяснил причину, почему это "плохо". Не слушай их, у них просто карго-культ на потоках. Даже там пытаются их втиснуть, где простой обработки очереди достаточно (ProcessMessages). Да, возможны косяки, если на форме "типа параллельно" что-то выполняется, и пользователь захочет что-то еще поделать или даже то же самое запустить -- но даже в этом случае можно без потоков обойтись (включая/отключая элементы интерфейса). Так что не все так так плохо у ProcessMessages, как малюют. Дешего и сердито, а работает для пользователя точно так же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 16:11:22 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
RyuuLeo Pevzner, отвечу вопросом на вопрос, зачем ему это делать? Я обозначил примерное направление, в котором можно покопаться и понять, почему использование ProcessMessages должно быть более осознанным чем то, что вы привели в примере. Если хотите разобраться, покопаетесь и разберетесь, если считаете, что вам это не надо и некорректное поведение программы в некоторых случаях вполне допустимо... ну нет, так нет.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 16:20:46 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
JaDi, я и не собирался их слушать. Но рад, что обсуждение вылилось хоть во что-то осмысленное, а не в упреки без какой-либо аргументации своей позиции с толикой высокомерия. Ps. Все действия до данной строки практически мгновенны, и их мало. Да, там есть один update одной строки, в случае, если он вообще нужен (0.01% вероятность). Так что, свойство "не дам закрыть" сразу, меня более чем устраивает. Они его даже не заметят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 16:39:05 |
|
||
|
Функция, ожидание значения переменной
|
|||
|---|---|---|---|
|
#18+
RyuuВсе действия до данной строки практически мгновенны, и их мало.Так зачем же тогда там application.processmessages? Хотя бы для себя ответь на этот вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 16:40:26 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39479671&tid=2042080]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
207ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 480ms |

| 0 / 0 |
