Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2009, 17:11   #1
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию Движущаяся кортанка в Delphi

Для задержки картинки использую

Код:
  .........
  application.processmessages;
  sleep(200);
  .........
Но в этом случае картинка никогда не останавливается.
Как мне ее остановить?
Жми на весы!!!
Chudo4258 вне форума Ответить с цитированием
Старый 28.03.2009, 17:53   #2
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
По умолчанию

А можно полный код?? А то ни хрина не понятно
The Revolution is Now!
hoza_syl вне форума Ответить с цитированием
Старый 28.03.2009, 18:40   #3
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Вот код на Button1, он рисует то что мне надо.

Код:
Randomize;
 p:=false;
 Repeat
  Cv:= Random(6500000000);
  Brush.Color:=Cv;
  Pen.Color:=Cv;
  Z := Random(10);

  If Z >= P Then X := X + H
            Else X := X - H;

  //сколько раз вернулся в нач. положение
  If X = X0 Then I := I + 1;

  Ellipse(X,Y,X+15,Y+15);
  Brush.Color:=ClWhite;
  Pen.Color:=ClWhite;
  TextOut(X,Y-15,'\/');
  application.processmessages;
  sleep(200);  
 Until p;
 
end;
А теперь нужен обработчик кнопки Button2, при нажатии на которую пекращается рисование, но чтобы form1 не закрывалась и нарисованный рисунок сохранился.
Жми на весы!!!
Chudo4258 вне форума Ответить с цитированием
Старый 28.03.2009, 18:43   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Если правильно понял, то, вроде, достаточно p присвоить true. Естественно, p должна быть глобальной.
Ведь цикл продолжается пока p = false.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 28.03.2009, 18:52   #5
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Ага, спасибо, помог!!!
Жми на весы!!!
Chudo4258 вне форума Ответить с цитированием
Старый 28.03.2009, 19:10   #6
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
Радость

Могу посоветовать делать анимацию в таймере(TTimer).
Levsha100 вне форума Ответить с цитированием
Старый 28.03.2009, 19:14   #7
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Не, спасибо. Я уже так сделал, да и на мой взгляд так проще.
Ну если есть желание можешь переделать эту прогу через таймер, я хоть посмотрю как это делается, а то я неразу не писал движущую картинку через таймер.
Жми на весы!!!
Chudo4258 вне форума Ответить с цитированием
Старый 28.03.2009, 19:17   #8
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Код:
Cv:= Random(6500000000);
  Brush.Color:=Cv;
  Pen.Color:=Cv;
  Z := Random(10);

  If Z >= P Then X := X + H
            Else X := X - H;

  //сколько раз вернулся в нач. положение
  If X = X0 Then I := I + 1;

  Ellipse(X,Y,X+15,Y+15);
  Brush.Color:=ClWhite;
  Pen.Color:=ClWhite;
  TextOut(X,Y-15,'\/');
  application.processmessages;
Так это все засунь в таймер и все
Levsha100 вне форума Ответить с цитированием
Старый 28.03.2009, 19:20   #9
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Как? Куда?
Я не разу не делал так, даже не имею понятия.

Вот сюда?
Цитата:
procedure TForm1.Timer1Timer(Sender: TObject);
или как???
Жми на весы!!!
Chudo4258 вне форума Ответить с цитированием
Старый 28.03.2009, 21:36   #10
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Цитата:
Код:
p:=false;
 ...
  Z := Random(10);

  If Z >= P Then X := X + H
А как согласуется выражение If Z >= P ?
р вроде типа Boolean, а Z по рандому должно быть типа integer.
Или я чего то не въезжаю?
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На Delphi 7 сделать игру кто хочет стать миллионером в delphi 7 666dart666 Помощь студентам 11 04.11.2010 17:57
Программа-тест в Delphi) скиньте))а то програмку здавать преподу надо,и самой хочется понять Delphi Верчик Помощь студентам 9 02.03.2009 17:46
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? redred Общие вопросы Delphi 10 11.12.2007 10:43
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? dagarik БД в Delphi 7 22.10.2007 17:54
не StringGrid1.Cells[1,1]:='Delphi'; а вот так SG1.C[1,1]:='Delphi' Nemesisking Компоненты Delphi 7 08.09.2007 03:27