Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Time 
:(
    Опции темы
Kirgston
Дата 13.6.2008, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: нет
Всего: 2



Ребята помогите разобратса с функцеей.
Код


function FormatTime(Time: Integer): string;
const
  sec  = 1000;
  min  = 60 * sec;
  hour = 60 * min;
var
  h, m, s : Integer;
begin
  h := Time div hour;
  m := (Time div min) mod 60;
  s := (Time div sec) mod 60;
  if Time < hour then
    Result := Format('%d:%.2d', [m, s])
  else
    Result := Format('%d:%.2d:%.2d', [h, m, s]);
end;


Если досолоно то насколько я понимаю оно:
Час:= Время делим на 60 (а откуда мы с етой функцыи взяли время? Нигде оно тут непрописано.... да и в варе юнита тоже.... ето что зарезервированая?)
Также и с минутами вроде. Час делим на минуты а потом с етого берьом мод... мод насколько я помню ето...тьфу уже забыл
Дальше если время менше часа значит выводим ето в минутах и секундах. А если менше значит в часах, мин и с. ('%d:%.2d:%.2d', [h, m, s]) прокоментируйте плиз как оно ето выводит? что такое %d:%.2d:%.2d ето зарезервированая функция?
И интересно как после етого я могу ссылатса мол
label1.Caption:=FormatTime(Position)+'/'+ FormatTime(Lenght) ???
Ведь в етой функцыи неговоритса про Позицыю и продолжытельность. Чтото я тут ничего непонимаю разкажыте плиз кто может

Это сообщение отредактировал(а) Alexeis - 13.6.2008, 09:02
PM MAIL   Вверх
Poseidon
Дата 13.6.2008, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 9
Всего: 133



Цитата(Kirgston @  13.6.2008,  00:20 Найти цитируемый пост)
прокоментируйте плиз как оно ето выводит?
Не знаю я где ты нарыл эту функцию, но суть ее в том, что ты ей передаешь значения в миллисекундах, а она тебе позвращает текст "минуты:секунды" или "чаты:минуты:секунды"

Код

label1.Caption:=FormatTime(1000)



Это сообщение отредактировал(а) Poseidon - 13.6.2008, 10:00


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
mr.Anderson
Дата 13.6.2008, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



Цитата
что такое %d:%.2d:%.2d ето зарезервированая функция?

Это модификаторы формата выводимого содержимого. d означает целый формат. Не уверен, но .2 вроде бы означает максимум два знака на число, причем, два знака после запятой... Не уверен, повторяю, это вроде бы сишный стиль, я его подзабыл уже.

Добавлено через 1 минуту и 30 секунд
ЗЫ но если это так, то непонятно, зачем указывать максимум 2 знака после запятой, если число и так целое...


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Kirgston
Дата 13.6.2008, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: нет
Всего: 2



Ну вот собственно.... 
ета функцыя вызываетса так:

procedure TForm2.Timer2Timer(Sender: TObject);
begin
with MediaPlayer1 do
    StatusBar1.Panels[1].Text := FormatTime(Position) + ' / ' + FormatTime(Length);
end;

А нарыл хз где smile точно ее разтолковать пока никто несмог ))))) Также непойму как тода она вызываетса с помощю FormatTime(Position) и FormatTime(Length)???? Ведь нигде в ней не описано что мол вызываетса етим методом. Просто функцыя ФорматТайм. А про позицыю + продолжытельность никто неговорил smile
PM MAIL   Вверх
mr.Anderson
Дата 13.6.2008, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



Kirgston, подобный вызов вообще неясно зачем сделан. Функция преобразовывает время, а передают ей позицию курсора и длину текста... Непонятно, зачем.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
TForumUser
Дата 13.6.2008, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 7.7.2007

Репутация: 0
Всего: 0



Цитата(Kirgston @  13.6.2008,  13:21 Найти цитируемый пост)
with MediaPlayer1 do   
 StatusBar1.Panels[1].Text := FormatTime(Position) + ' / ' + FormatTime(Length);


Эта функция - не метод. Свойства MediaPlayer1.Position и MediaPlayer1.Length возвращают целое число - кол-во миллисекунд, а функция преобразует это число во время

P.S. как я понял, функция не стандартная
Сделано для того, чтобы видеть, сколько прошло времени и сколько всего (у песни). Вместо 22345(прошло)/56743(всего) возвращает 12:21(прошло)/15:54(всего)
(Может, цыфры и не те, н смысл ясен)


Это сообщение отредактировал(а) TForumUser - 13.6.2008, 13:35
--------------------
Экономте электроэнергию! Выключайте Num Lock!
PM MAIL ICQ   Вверх
mr.Anderson
Дата 13.6.2008, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



Тьфу ты, не просек with в коде... Тогда все понятно, конечно, применительно к MediaPlayer'у это действительно время. Так что тогда все ясно - в статусбар проставляется текущее время воспроизведения (сколько прошло от начала) и через прямой слеш - полное время.

ЗЫ функция, разумеется, нестандартная.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Qu1nt
Дата 13.6.2008, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 13.1.2007

Репутация: 22
Всего: 50



Функцию писал йа = )
http://forum.vingrad.ru/topic-210346.html
PM MAIL   Вверх
Kirgston
Дата 15.6.2008, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: нет
Всего: 2



TForumUser, 
mr.Anderson, 
Poseidon, 
Спасибо большое за разтолкование данной функции  +1 каждому  smile 


Qu1nt, 
Тебе большое спасибо за саму функцию ;) только жалко что в разных фильмах выдает время по разному... тобиш может выдать 0/13 или както так. Вобшем неидеальная она smile 
Но биг спс за нее ;)

Добавлено через 1 минуту и 10 секунд
Извените плиз обложалса smile надо 100 постов чтоб вас + поставить  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0473 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.