|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.03.2017, 02:31 | #11 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,894
|
|
17.03.2017, 02:55 | #12 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,894
|
|
08.04.2017, 19:25 | #13 | |
Пользователь
Регистрация: 11.05.2011
Сообщений: 31
|
Цитата:
Код:
|
|
09.04.2017, 01:49 | #14 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,894
|
|
09.04.2017, 11:56 | #15 | |
Пользователь
Регистрация: 11.05.2011
Сообщений: 31
|
Цитата:
Укажите, пожалуйста, в чем именно моя ошибка или же дайте ссылку на "правильное" описание метода |
|
08.05.2017, 21:43 | #16 |
Пользователь
Регистрация: 11.05.2011
Сообщений: 31
|
Вопрос наконец решил. Оказалось - не доглядел наименование одного их используемых файлов (который вставлялся рандомно)
Но теперь следующая беда, на 3280-3281 цикле подряд выползают 3 ошибки (скрины прикрепил): |
15.04.2019, 13:45 | #17 |
Регистрация: 11.06.2012
Сообщений: 6
|
Люди, кто разобрался с этой Application.ProcessMessages в цикле?
У меня есть кнопка (ее код наведен ниже) по нажатию на которую происходит типа включение анимации на компоненте image, потом запускается цикл который должен этот анимированый обект подвинуть вправо на 130, после чего анимация на обекте останавливается. Так вот для того чтоб перемещение было по шагово, а не зависание, а потом один прыжок на 130, вставил Application.ProcessMessages, но тут началось что-то не понятное, сначала обект сдивгается на 1, а потом зависание на 20 секунд и все, дальше кнопка стает активная, но анимация не остановилась. Тоесть получается, что когда програма впервые сталкивается из Application.ProcessMessages, то цикл ганяет в пустую, не выполняя ничего, а когда выходит из цикла, то и все остальные команды в процедуре (тоесть заложеные в кнопке) тоже не выполняются. Что делать, почему не работает? procedure TForm4.But_RightClick(Sender: TObject); var i:integer; begin if move_acces(1,'R')=1 then begin form4.Pani_A.AnimationBitmap:=form4 .Pani.MultiResBitmap.Items[3].Bitmap; form4.Pani_A.Enabled:=true; form4.Pani_A.Start; for I := 1 to 130 do begin form4.Pani.Position.X:=form4.Pani.P osition.X+1; sleep(20); label3.Text:=floattostr(form4.Pani. Position.X); label4.Text:=floattostr(form4.Pani. Position.y); Application.ProcessMessages; end; form4.Pani_A.Stop; mas_pole[mas_p[1].x,mas_p[1].y]:=0; mas_pole[mas_p[1].x+1,mas_p[1].y]:=1; mas_p[1].x:=mas_p[i].x+1; end else ShowMessage('УВАГА!'+#13+'В цьому напрямку хід не можливий!'); end; |
15.04.2019, 14:40 | #18 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Выкидывайте этот цикл (вместе с кодом внутри).
добавляйте на форму таймер и в нём двигайте на нужное число точек. на But_RightClick просто включайте таймер. по достижении результата - просто выключайте таймер. всё. никаких Application.ProcessMessages не нужно. |
15.04.2019, 17:26 | #19 |
Регистрация: 11.06.2012
Сообщений: 6
|
Так в том то и проблема, что не хочется через таймер выключать анимацию, ибо компонент FloatAnimation прекрасно перемещает обьект по форме, но почему-то, как показывает практика, в одну сторону он двигает компонент с одной скоростью, в другую с другой, хотя все параметры устанавливаются одинаковые. Вот потом и приходится долго и нудно подбирать, для таймера, время которое уйдет на перемещение обьекта с анимацией в ту или иную сторону.
По этому и хотел схитрить с помощю простого перемещения в цикле, из периодическим прериванием на прорисовку. |
15.04.2019, 17:32 | #20 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
не выключайте.
Цитата:
Application.ProcessMessages не нужен. p.s. хотя, я бы задумался, зачем нужен компонент, который |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Почему прерывается работа программы после чтения их файла? | Вероника99 | Помощь студентам | 1 | 26.01.2014 19:06 |
Как из метода X в потоке А, вызвать метод Y и чтобы он работал в потоке B ? | lawliet93 | C# (си шарп) | 0 | 09.03.2013 18:16 |
Почему прерывается поиск в MS. Word | Pavel229 | Общие вопросы Delphi | 0 | 18.07.2011 10:22 |
Действие lines.add не завершает свего дествия, т.е прерывается | NiKiToZZ- | Помощь студентам | 1 | 13.02.2011 13:53 |
Поток прерывается самостоятельно | Ferrum26 | Общие вопросы Delphi | 7 | 28.07.2010 15:36 |