|
|
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
Давно сталкиваюсь с проблемой "разбивки" выполнения процедуры. Извинити, если буду коряво излагать свой вопрос, но мне он кажется трудным. Иногда при выполнении процедуры не все выполняется, что должно выполняться. Но если тот кусок, который не выполняется перенести в другую процедуру и запустить ее после выполнения первой прцедуры, то все выполняется. Есть ли какой нибудь способ "не разбивать" такую процедуру, что бы она вся выполнялась за один раз. Мне кажется, хорошо иллюстрирует то, что мне надо After Show, когда OnShow не может выполнить все, что нужно и мы выполняем остаток кода After Show. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2020, 14:31 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
noramЕсть ли какой нибудь способ "не разбивать" такую процедуру, что бы она вся выполнялась за один раз. Да: запускать её только тогда, когда есть все необходимые условия для её полного выполнения. Или опять же да: не заставлять процедуру делать больше одного дела. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2020, 14:37 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
Хороший совет! Прцедура сделала свое дело, пытаемся из под нее запустить другую прецедуду - не получатся. Но если запускаем другую процедуру после выполненя первой, скажем, нажатием кнопки - получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2020, 14:54 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
noram Прцедура сделала свое дело, пытаемся из под нее запустить другую прецедуду - не получатся. Но если запускаем другую процедуру после выполненя первой, скажем, нажатием кнопки - получается. Может стоит убрать из кода конструкцию Код: pascal 1. 2. 3. 4. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2020, 15:23 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
noram Иногда при выполнении процедуры не все выполняется, что должно выполняться Эта фраза показывает, что Вы не контролируете происходящее в написанном Вами коде и пытаетесь "нашаманить" работающее решение, в результате чего и пришли к подобным корявостям. Для нормальной работы необходимо разобраться, что именно происходит в таких случаях. Вы пишете: не выполняется то, что должно. Здесь следует задать вопрос: почему? Это может быть:
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2020, 15:30 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
Не работает "тихо". Ни ругается, ни не ругается, просто ничего не делает. Опять же, хорошая иллюстрация AfterShow - некоторые вещи можно сделать только после After Show. Спасибо, но я кажется нашел решение. Код: pascal 1. 2. 3. 4. 5. Может дело в ассонхронизации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2020, 15:35 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ noram Прцедура сделала свое дело, пытаемся из под нее запустить другую прецедуду - не получатся. Но если запускаем другую процедуру после выполненя первой, скажем, нажатием кнопки - получается. А мне сдается, что ТС просто запутался в разных OnХХХХХ событиях. Навскидку - что-то пытаемся сделать с созданной, но еще не показанной формой. Вот и шлет свои дополнительные сообщения. Получается классика : PostMessage()->событие на OnХХХХ отработало-> выставились дополнительные свойства, отработало WinAPI -> поймали посланный message -> сделали то, что хотели, но не смогли в изначальном OnXXXXX обработчике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2020, 15:37 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
noramНи ругается, ни не ругается, просто ничего не делает. Так не бывает. noramМожет дело в ассонхронизации? Нет, проблема в прокладке. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2020, 15:41 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
DarkMaster, мне кажется, Вы правы.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2020, 15:48 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
Ладно, это бесполезно. Просто через несколько лет какому-нибудь бедолаге придётся переписывать уйму говнокода. Или что более вероятно, её выкинут и со словами "Какое же Дельфи говно" перепишут на C#. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2020, 16:00 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
Чего прицепились к человеку? Действительно, на OnShow далеко не всё можно делать, и в данном случае чтобы разобраться - надо хорошо представлять себе потроха VCL и тонкости работы с WinApi. Для большинства прикладников это не особо то и нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2020, 20:12 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
Большинству прикладников и OnShow вообще использовать не нужно. Но пытаются же. А раз решили создавать себе приключения на пятую точку, так зачем останавливаться на достигнутом? Само время отправляться в джунгли потрохов VCL, где много диких багов. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2020, 22:06 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
Спасибо, white nigger оксюморон за поддержку. Да, такие ситуации возникают во сновном, когда рабоаешь с WunApi. Но сегодня нашел (как мне кажется) элегантное решение - там, где программа не срабатывает, переносим этом код в таймер и, как я уже указал - Timer.Enabled := True; Это проще, чем конструкции, которыми я пользовался в AfterSow - проще и уневирсальней.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2020, 22:24 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
noram там, где программа не срабатывает, переносим этом код в таймер и, как я уже указал - Timer.Enabled := True; Хотелось бы всё такие увидеть где именно программа не срабатывает. Всё обсуждение - "а давайте Я угадаю, что у ТС не срабатывает" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2020, 22:48 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
noram Спасибо, white nigger оксюморон за поддержку. Да, такие ситуации возникают во сновном, когда рабоаешь с WunApi. Но сегодня нашел (как мне кажется) элегантное решение - там, где программа не срабатывает, переносим этом код в таймер и, как я уже указал - Timer.Enabled := True; Это проще, чем конструкции, которыми я пользовался в AfterSow - проще и уневирсальней.... Решение странноватое, если честно... PostMessage() выглядел как-то более элегантно. P.S. И да - код в студию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2020, 03:13 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
ОК, код в студию... Такая ситуация у меня возникает не впервые, но вот последний case. Есть форма, которая обрамлена рамкой. Рамка рисуется в родительской форме для всех форм проекта. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Есть процедура, которая динамически создает кнопки в DBGrid, причем кнопки надо переодически переписывать, в зависимости от того, в каком виде представлен DBGrid. При этой процедуре (по какой то причине) нарисованая рамка становится прерывистой - пробелы возникают напртив кнопок - некрасиво... Запускаю процедуру создания кнопок, потом вызываю setFBorder(cl : TColor), чтобы перерисовать это безобразия - ничего не происходит.. ни ругани, ни не ругани. Вызываю setFBorder через таймер, как показывал - все работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2020, 08:50 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
ЖЕСТЬ !!! И таймер помогает прорисовать форму !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2020, 09:00 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Большинству прикладников и OnShow вообще использовать не нужно Ну почему же. Довольно много операций стоит делать именно в нём. Тут, конечно, вопрос, где ты проводишь границу между "прикладниками" и не"прикладниками"... DimaBr ЖЕСТЬ !!! И таймер помогает прорисовать форму !!! Я же сказал: 22171818 А через год-другой он будет на форуме учить других. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2020, 09:45 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
noram, есть Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. IDE правда гнётся из-за такого кода и для полной крректности нужно дописывать дополнение которое удалит из очереди вашу процедуру, в случае уничтожения формы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2020, 11:06 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan) Спасибо за ценный совет! Класс! Работает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2020, 11:22 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
softwarerТут, конечно, вопрос, где ты проводишь границу между "прикладниками" и не"прикладниками"... "Прикладники" делают что-то полезное пользователю. "Не прикладники" делают такую вот фигню с бордюрчиками. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2020, 12:08 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
Дарю Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2020, 12:59 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Дарю Ну ещё ты начни плохому учить. Код: pascal 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2020, 13:05 |
|
||
|
Разбивка выполнения процедуры
|
|||
|---|---|---|---|
|
#18+
Вот так нужно рисовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2020, 13:28 |
|
||
|
|

start [/forum/search_topic.php?author=UnsKneD&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 619ms |
| total: | 823ms |

| 0 / 0 |
