
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
08.03.2019, 20:57
|
|||
|---|---|---|---|
|
|||
Разморозить форму |
|||
|
#18+
Привет всем У меня есть функция в которой происходит ожидания нажатия enter: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. Она вызывается в цикле: Код: pascal 1. 2. 3. 4. 5. Когда она выполняется, как мне получить возможность двигать форму и писать в edit? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.03.2019, 21:41
|
|||
|---|---|---|---|
Разморозить форму |
|||
|
#18+
а чем главный цикл обработки сообщений не подходит ? он всем этим и занимается и обработчик OnKeyPress замечательно отловит нажатие Enter без всякой бесовщины ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.03.2019, 22:51
|
|||
|---|---|---|---|
|
|||
Разморозить форму |
|||
|
#18+
Взгляните на код этой процедуры [SRC delphi] procedure MyProcessMessages(); var lpMsg : TMsg; begin while PeekMessage(lpMsg,0,0,0,PM_REMOVE) do begin TranslateMessage(lpMsg); DispatchMessage(lpMsg); end; end; /SRC] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.03.2019, 22:52
|
|||
|---|---|---|---|
|
|||
Разморозить форму |
|||
|
#18+
Сорри, лишнее удалил. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.03.2019, 00:25
|
|||
|---|---|---|---|
|
|||
Разморозить форму |
|||
|
#18+
krapotkin, Мне нужно чтобы до того, пока не будет нажата клавиша ентер цикл дальше не шёл! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.03.2019, 08:03
|
|||
|---|---|---|---|
Разморозить форму |
|||
|
#18+
logonekrapotkin, Мне нужно чтобы до того, пока не будет нажата клавиша ентер цикл дальше не шёл! потоки не предлагать, как я понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.03.2019, 13:00
|
|||
|---|---|---|---|
|
|||
Разморозить форму |
|||
|
#18+
Здесь потоки нафик не сдались - не тот уровень ТС, судя по вопросу. Достаточно флага и ProcessMessages ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.03.2019, 13:01
|
|||
|---|---|---|---|
|
|||
Разморозить форму |
|||
|
#18+
Vizit0r, Я попробовал потоками Я тоже сначала подумал, что мне нужно просто чтобы эта функция выполнялась в отдельном потоке Я сделал так - Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Но получилось так, что теперь этот код в этом месте ждёт нажатия энтер в отдельном потоке, а цикл то конечно продолжается! Я не понимаю как здесь использовать потоки, пожалуйста подскажи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.03.2019, 13:03
|
|||
|---|---|---|---|
|
|||
Разморозить форму |
|||
|
#18+
white_nigger, Не хочу я этих флагов! Это всегда посредственное решение! Я хочу научиться писать нормально! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.03.2019, 13:43
|
|||
|---|---|---|---|
Разморозить форму |
|||
|
#18+
logone, о каком цикле ты пишешь? Что должно остановиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.03.2019, 14:12
|
|||
|---|---|---|---|
|
|||
Разморозить форму |
|||
|
#18+
s62, Цикл Код: pascal 1. А остановиться должен цикл до тех пор пока не будет нажата клавиша ентер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.03.2019, 17:36
|
|||
|---|---|---|---|
Разморозить форму |
|||
|
#18+
logonewhite_nigger, Не хочу я этих флагов! Это всегда посредственное решение! Я хочу научиться писать нормально! Правильное решение это использование флагов и OnKeyPress. А использование подобного цикла как раз решение уровня даже не студента, а школьника. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.03.2019, 17:56
|
|||
|---|---|---|---|
|
|||
Разморозить форму |
|||
|
#18+
Vizit0r, Пожалуйста, если ты тут будешь, то предложи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.03.2019, 18:26
|
|||
|---|---|---|---|
|
|||
Разморозить форму |
|||
|
#18+
logoneвозможность двигать форму и писать в edit?добавление пары строчек это решает. но зачем так делать? хочешь как в консольном приложении readln. если требуется подтверждение дальнейших действий, то может проще MessageBox вывести. он также приостановит цикл и закрыть его можно тоже нажатием Enter Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.03.2019, 19:18
|
|||
|---|---|---|---|
|
|||
Разморозить форму |
|||
|
#18+
Спасибо! Семён, ты был прав, я просто впервые увидел эти функции, поискал, почитал про них, и не понял Ghost Writer, а только сейчас понял смысл! Спасибо вам! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.03.2019, 23:43
|
|||
|---|---|---|---|
|
|||
Разморозить форму |
|||
|
#18+
Gator, После тестов, было понято что Если в этот момент (когда мы в функции WaitEnter) выполнится другой обработчик события - Допустим вы по Esc закроете форму в этот момент И переключитесь на другую форму Функция WaitEnter останется работать и ждать ентера, и когда будет нажат энтер цикл продолжит работу! Чтобы этого не было Нужно будет написать что то типа: Код: pascal 1. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Потом мы попадём обратно в цикл и там тоже должны будем написать: Код: pascal 1. 2. 3. 4. 5. 6. 7. Не используйте это никогда! Вместо цикла вызовите функцию, которая сделает то что надо А после этого в конце обработчика событий OnKeyPress вызовите снова эту же функцию Имитатор итераций готов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.03.2019, 23:58
|
|||
|---|---|---|---|
|
|||
Разморозить форму |
|||
|
#18+
пысы: Тоже самое касается и флагов с процесс мессаджем! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2019, 00:28
|
|||
|---|---|---|---|
Разморозить форму |
|||
|
#18+
logoneУ меня есть функция в которой происходит ожидания нажатия enter: Выбросьте её нафиг и никогда не пишите такую хрень. Потом сформулируйте, какую задачу Вы пытаетесь решить её с помощью и спросите, как решать её адекватно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2019, 17:28
|
|||
|---|---|---|---|
Разморозить форму |
|||
|
#18+
Писать как в DOSе он хочет, ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2019, 17:45
|
|||
|---|---|---|---|
Разморозить форму |
|||
|
#18+
bk0010Писать как в DOSе он хочет, ИМХО.+1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.03.2019, 11:34
|
|||
|---|---|---|---|
|
|||
Разморозить форму |
|||
|
#18+
а вот зря лажаете человека ИМХО: он дело говорит, событийная ориентация хороша только для несвязанных примитивов: нажал-получил когда в программе нужна сценарная логика с кучей разветвлений с таким подходом приходится заводить состояния а стейт-машины очень сложны в поддержке, по сравнению с прямым кодом т.е. с введением событийно-ориентированного похода мы потеряли очень ёмкий пласт подходов к разработке и сами себе создаём проблемы на ровном месте logone, правильный цикл для VCL вот такой: Код: pascal 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.03.2019, 11:46
|
|||
|---|---|---|---|
Разморозить форму |
|||
|
#18+
kealon(Ruslan)т.е. с введением событийно-ориентированного похода мы потеряли очень ёмкий пласт подходов к разработке С введением любой хорошей и прогрессивной технологии проходит какое-то время, люди забывают как хреново было до неё (плюс вырастают те, кто этого просто не застал) и начинается эдакое романтическое отношение к прошлому: мол, сейчас вот такие недостатки, а тогда было хорошо (забывая, что тогда были недостатки в десять раз больше). Если очень грубо, то до введения событийно-ориентированного подхода автор и думать бы не стал о том, что пока система ждёт нажатия Enter - в ней можно "двигать окна и писать в edit". А если бы задумался - ему бы квалификации не хватило даже начать это реализовывать. Событийно-ориентированный подход дал ему возможность замахнуться на то, на что он раньше и претендовать не смел - но не отменил необходимость думать головой и не дал возможности писать полную хрень и надеяться на вменяемый результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.03.2019, 12:08
|
|||
|---|---|---|---|
|
|||
Разморозить форму |
|||
|
#18+
softwarer, не надо уходить в крайности это никак не запрещает попутно обрабатывать любые нужные в данный конкретный момент события он позволяет интуитивно понятно описывать "сценарий действий" в C# используют и никто не страдает :-) PS: фанатичный вгляд на идеологию очень часто закрывает нам красивые и элегантные решения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.03.2019, 12:11
|
|||
|---|---|---|---|
Разморозить форму |
|||
|
#18+
logoneVizit0r, Я попробовал потоками Я тоже сначала подумал, что мне нужно просто чтобы эта функция выполнялась в отдельном потоке Я сделал так - Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Но получилось так, что теперь этот код в этом месте ждёт нажатия энтер в отдельном потоке, а цикл то конечно продолжается! Я не понимаю как здесь использовать потоки, пожалуйста подскажи Вам нужно весь цикл засунуть в поток, а не ожидание нажатия на Enter. И при наступлении момента, когда нужно получить от главного потока разрешение на продолжение, начать процесс синхронизации с главным потоком, послать сообщение главному потоку (к примеру) и ждать. Ожидание можно сделать через Event, к примеру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=58&mobile=1&tid=2039700]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
181ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 468ms |

| 0 / 0 |
