|
|
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
Привет всем У меня есть функция в которой происходит ожидания нажатия enter: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. Она вызывается в цикле: Код: pascal 1. 2. 3. 4. 5. Когда она выполняется, как мне получить возможность двигать форму и писать в edit? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2019, 20:57 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
а чем главный цикл обработки сообщений не подходит ? он всем этим и занимается и обработчик OnKeyPress замечательно отловит нажатие Enter без всякой бесовщины ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2019, 21:41 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#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:51 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
Сорри, лишнее удалил. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.03.2019, 22:52 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
krapotkin, Мне нужно чтобы до того, пока не будет нажата клавиша ентер цикл дальше не шёл! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2019, 00:25 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
logonekrapotkin, Мне нужно чтобы до того, пока не будет нажата клавиша ентер цикл дальше не шёл! потоки не предлагать, как я понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2019, 08:03 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
Здесь потоки нафик не сдались - не тот уровень ТС, судя по вопросу. Достаточно флага и ProcessMessages ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2019, 13:00 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
Vizit0r, Я попробовал потоками Я тоже сначала подумал, что мне нужно просто чтобы эта функция выполнялась в отдельном потоке Я сделал так - Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Но получилось так, что теперь этот код в этом месте ждёт нажатия энтер в отдельном потоке, а цикл то конечно продолжается! Я не понимаю как здесь использовать потоки, пожалуйста подскажи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2019, 13:01 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
white_nigger, Не хочу я этих флагов! Это всегда посредственное решение! Я хочу научиться писать нормально! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2019, 13:03 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
logone, о каком цикле ты пишешь? Что должно остановиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2019, 13:43 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
s62, Цикл Код: pascal 1. А остановиться должен цикл до тех пор пока не будет нажата клавиша ентер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2019, 14:12 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
logonewhite_nigger, Не хочу я этих флагов! Это всегда посредственное решение! Я хочу научиться писать нормально! Правильное решение это использование флагов и OnKeyPress. А использование подобного цикла как раз решение уровня даже не студента, а школьника. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2019, 17:36 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
Vizit0r, Пожалуйста, если ты тут будешь, то предложи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2019, 17:56 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#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, 18:26 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
Спасибо! Семён, ты был прав, я просто впервые увидел эти функции, поискал, почитал про них, и не понял Ghost Writer, а только сейчас понял смысл! Спасибо вам! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2019, 19:18 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#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:43 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
пысы: Тоже самое касается и флагов с процесс мессаджем! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2019, 23:58 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
logoneУ меня есть функция в которой происходит ожидания нажатия enter: Выбросьте её нафиг и никогда не пишите такую хрень. Потом сформулируйте, какую задачу Вы пытаетесь решить её с помощью и спросите, как решать её адекватно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2019, 00:28 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
Писать как в DOSе он хочет, ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2019, 17:28 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
bk0010Писать как в DOSе он хочет, ИМХО.+1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2019, 17:45 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
а вот зря лажаете человека ИМХО: он дело говорит, событийная ориентация хороша только для несвязанных примитивов: нажал-получил когда в программе нужна сценарная логика с кучей разветвлений с таким подходом приходится заводить состояния а стейт-машины очень сложны в поддержке, по сравнению с прямым кодом т.е. с введением событийно-ориентированного похода мы потеряли очень ёмкий пласт подходов к разработке и сами себе создаём проблемы на ровном месте logone, правильный цикл для VCL вот такой: Код: pascal 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2019, 11:34 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)т.е. с введением событийно-ориентированного похода мы потеряли очень ёмкий пласт подходов к разработке С введением любой хорошей и прогрессивной технологии проходит какое-то время, люди забывают как хреново было до неё (плюс вырастают те, кто этого просто не застал) и начинается эдакое романтическое отношение к прошлому: мол, сейчас вот такие недостатки, а тогда было хорошо (забывая, что тогда были недостатки в десять раз больше). Если очень грубо, то до введения событийно-ориентированного подхода автор и думать бы не стал о том, что пока система ждёт нажатия Enter - в ней можно "двигать окна и писать в edit". А если бы задумался - ему бы квалификации не хватило даже начать это реализовывать. Событийно-ориентированный подход дал ему возможность замахнуться на то, на что он раньше и претендовать не смел - но не отменил необходимость думать головой и не дал возможности писать полную хрень и надеяться на вменяемый результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2019, 11:46 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
softwarer, не надо уходить в крайности это никак не запрещает попутно обрабатывать любые нужные в данный конкретный момент события он позволяет интуитивно понятно описывать "сценарий действий" в C# используют и никто не страдает :-) PS: фанатичный вгляд на идеологию очень часто закрывает нам красивые и элегантные решения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2019, 12:08 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
logoneVizit0r, Я попробовал потоками Я тоже сначала подумал, что мне нужно просто чтобы эта функция выполнялась в отдельном потоке Я сделал так - Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Но получилось так, что теперь этот код в этом месте ждёт нажатия энтер в отдельном потоке, а цикл то конечно продолжается! Я не понимаю как здесь использовать потоки, пожалуйста подскажи Вам нужно весь цикл засунуть в поток, а не ожидание нажатия на Enter. И при наступлении момента, когда нужно получить от главного потока разрешение на продолжение, начать процесс синхронизации с главным потоком, послать сообщение главному потоку (к примеру) и ждать. Ожидание можно сделать через Event, к примеру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2019, 12:11 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)т.е. с введением событийно-ориентированного похода мы потеряли очень ёмкий пласт подходов к разработке нет конечно. Никто ничего не терял. пишите консольное приложение без всяких там некошерных PeekMessage, разве кто запрещает? или Direct-3D приложение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2019, 12:39 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
Arioch, конечно, зачем пользователю формочка :-) только консоль... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2019, 13:13 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
softwarerЕсли очень грубо, то до введения событийно-ориентированного подхода автор и думать бы не стал о том, что пока система ждёт нажатия Enter - в ней можно "двигать окна и писать в edit".Ну почему же, в Clipper-е, помнится, с помощью @ say @ get read и menu to создавали формочки типа виндовых (писать в edit, нажимать кнопочки, окна были редкостью, в основном в turbo vision - разрешение 80x25 не способствовало), но с жестким следованием кода. Вот народ при переходе и мучился. Но пока писал эмулятор этого подхода под Windows, привыкал к event-driven programming. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2019, 14:05 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
bk0010в turbo vision - разрешение 80x25 не способствовало), но с жестким следованием кодаВ Turbo Vision уже была событийная модель ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2019, 18:04 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
80x50 или даже 120xNN когда появился Turbo Vision уже давно CGA и MDA стали историей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2019, 18:14 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)конечно, зачем пользователю формочка :-) только консоль... то есть ты говоришь, что "потерянный ёмкий пласт" пользователю не нужен??? а почему тебя это волнует? пусть жрёт что дают! bk0010Ну почему же, в Clipper-е, помнится, с помощью @ say @ get read и menu to создавали формочки типа виндовых точне, в dBASE, а Клиппер - это клон клона. да и сам dBase скорее всего взял это с мейнфреймов, видел я как в туристических фирмах авиа-билеты продавали в 2000-x - чуть ли на BBS-интерфейс, хотя и по интернету. .....а для виндовых это можно сделать, как цепочку модальных окон ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2019, 18:17 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
ещё вариант - старые добрые Мастера/Wizards ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2019, 18:18 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
Ariochто есть ты говоришь, что "потерянный ёмкий пласт" пользователю не нужен??? а почему тебя это волнует? пусть жрёт что дают!это ты так сказал - 21829027 наверное потому что я за это деньги получаю, пусть не напрямую, но ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2019, 19:23 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan), я сказал, что никто "ёмкий пласт" не терял, что он как был - так и остался, весь целиком, на 100% - бери и пользуйся про пользователя я вообще ни слова не говорил, пока ты не начал 21829080 и именно ты сказал, что "ёмким пластом" ты пользоваться не хочешь, потому что пользователям это не нравится можешь, но не хочешь т.е. ничего не потеряно, как я с самог оначала и говорил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2019, 19:38 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
> когда в программе нужна сценарная логика на вскидку: * банкоматы * голосовое меню в телефонах, "если вы ъхотите сварить кофе - нажмите 1" * USSD "пласт потерян"? да нет, живее всех живых ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2019, 20:16 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
Ariochkealon(Ruslan), я сказал, что никто "ёмкий пласт" не терял, что он как был - так и остался, весь целиком, на 100% - бери и пользуйся про пользователя я вообще ни слова не говорил, пока ты не начал 21829080 в литературе этот приём называется Гротеск ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2019, 20:25 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan), так ты тут литературу пишешь? я думал ты на технический форум пришёл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2019, 13:12 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
Ariochkealon(Ruslan), так ты тут литературу пишешь? я думал ты на технический форум пришёл.этот литературный приём использован, что бы показать абсурдность Arioch пишите консольное приложение без всяких там некошерных PeekMessage, разве кто запрещает? а не решить проблему "пусть едят пирожные.." (С)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2019, 15:07 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)"пусть едят пирожные.." (С)... Хороший пример. На редкость уместный. Эта фраза во-первых не была сказана Антуанеттой, во вторых вероятнее всего была не фразой, а королевским указом, причём очень полезным для бедняков. Т.е. использование этой фразы в обычном смысле - передёргивание карт. Теперь возвращаемся к якобы существующей проблеме: kealon(Ruslan)мы потеряли очень ёмкий пласт подходов к разработке В очередной раз повторяю, в озвученнйо проблеме речь про "потеряли" и про "мы, программисты" kealon(Ruslan)конечно, зачем пользователю формочка :-) А вот тут идёт передёргивание карт. Вместо озвученной проблемы подсовывается совсем другая проблемы. Что пользователи некоторых программистов (а не сами программисты) могут, но не хотят (а вовсе не "хотят, но не могут" = "потеряли") "использовать пласт". Ariochа почему тебя это волнует? пусть жрёт что дают! А вот тут был "литературный приём" - сарказм. С целью подчеркнуть передёргивание. Помочь тебе начать много и часто говорить о том, что вообще НЕ ЯВЛЯЕТСЯ частью озвученной проблеммы "программисты потеряли пласты", а появилось только при подмене изначальной проблемы на постороннюю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2019, 18:02 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
Arioch, даже и не знаю зачем программистам интересно как делать программы проще и надёжнее, вообще нелогичные создания - сами себе вакансии уменьшают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2019, 19:32 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
а это уже ТРЕТЬЯ проблема, не связанная ни с одной из двух предыдущих P.S. ....и эти люди говорят за литературу. kealon(Ruslan)зачем программистам интересно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2019, 20:04 |
|
||
|
Разморозить форму
|
|||
|---|---|---|---|
|
#18+
А остановиться должен цикл до тех пор пока не будет нажата клавиша ентер Т.е. цикл состоит из двух частей? До нажатия и после. Создаем поток выполняем до, на нажатие Enter поднимаем событие (event), в потоке ждем событие с помощью WaitForSingleObject и выполняем после. Синхронизацию через Synchronize или просто Send/PostMessage. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2019, 03:47 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2039700]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
148ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
81ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 483ms |

| 0 / 0 |
