мне нужна помощь в Delphi-7 - PullRequest
       2

мне нужна помощь в Delphi-7

0 голосов
/ 13 октября 2010

Мне было интересно, может ли кто-нибудь помочь мне. У меня есть школьный проект, который должен быть готов через 10 дней, и, честно говоря, я понятия не имею, что я делаю = / что от меня ожидается, так это то, что я программирую игру на память. в настоящее время я застрял в том, что мне нужно определить, сколько времени потребуется человеку, чтобы сыграть в игру, а затем показать, сколько времени ему потребовалось в качестве «счета» в конце. как мне время? какой компонент я должен использовать и как мне запрограммировать этот компонент на время? он должен начинаться при нажатии кнопки, а затем заканчиваться, когда игра заканчивается. любая помощь будет высоко оценена!

Ответы [ 4 ]

2 голосов
/ 14 октября 2010

Вам потребуется

1.- В вашей форме

  • добавьте таймер и установите для его свойства Enabled значение False.
  • добавьте метку для отображения времени
  • добавьте приватный атрибут startTime для записи времени, когда пользователь запустит игру.

должно привести к чему-то вроде этого ...

type
 TForm1 = class(TForm)
  ...
  Label1: TLabel;
  Timer1: TTimer;
  ...
 private
  startTime:TDateTime;
  ....

2.- При событии нажатия кнопки пуска код для инициализации атрибута startTime и запуска таймера.

 procedure TForm1.Button1Click(Sender: TObject);
  begin
   startTime:=Now;
   Timer1.Enabled:=True;
   ....
  end;

3.- При событии таймераТаймер, какой-то код для отображения отсчета времени

 procedure TForm1.Timer1Timer(Sender: TObject);
  begin
   Label1.Caption:=TimeToStr(Now-startTime);
   ....
  end;

4.- При событии нажатия кнопки финиша или когда программа считает окончание игры, какой-то код останавливает таймер.

 procedure TForm1.Button2Click(Sender: TObject);
  begin
   Timer1.Enabled:=False;
   Label1.Caption:=TimeToStr(now-startTime);
   ....
  end;  
2 голосов
/ 14 октября 2010

Почему бы вам не сохранить текущее время в переменной, когда он запускает игру, и снова сохранить время, когда он закончил?

Вы можете взять его по инструкции Сейчас .

var time: TDateTime;
begin
 time := now;
 ShowMessage(DateTimeToStr(time));
end;

Вы увидите текущее время в системе.

0 голосов
/ 14 октября 2010
  1. Создайте переменную (например, StartTime) типа TDateTime в вашей форме.
  2. Когда пользователь начинает играть, установите переменную равной Now ().
  3. Когда пользователь закончит работу, рассчитайте значение Now () - StartTime. Результатом является десятичное число, представляющее долю дня, прошедшего между временем начала и окончания.
  4. Чтобы преобразовать это в количество секунд, умножьте его на (60 * 60 * 24) (это количество секунд в дне). Оттуда вы можете отобразить номер, сколько хотите.
0 голосов
/ 14 октября 2010

PA ответ, кажется, именно то, что вам нужно. потому что, если бы я хорошо понял, и вы впервые работаете с Delphi, я бы добавил:

  • Now - это функция, определенная в SysUtils, которая возвращает текущую дату и время

  • вы найдете TTimer на палитре компонентов системы (см. Изображение в ссылке ниже)

  • все процедуры, в которых вам нужно написать код, будут автоматически созданы, выбрав вкладку «События» в Инспекторе объектов, а затем дважды щелкнув в поле ввода (см. Изображение в ссылке ниже)

http://i.stack.imgur.com/0iNsL.png (извините, я не могу встроить изображения, потому что у меня нет необходимой репутации)

С этого момента будет очень легко завершить ваше заявление

удачи, G

...