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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.08.2010, 05:51   #1
Дворник
Заблокирован
 
Регистрация: 03.08.2010
Сообщений: 30
Стрелка Преобразование даты

Код:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  Sum, h: Integer;

begin

  Sum := 0;

  if Length(StringGrid1.Cells[0,0]) > 0 then
  begin
    StringGrid1.RowCount := StringGrid1.RowCount + 1;
  end;

  StringGrid1.Cells[2,StringGrid1.RowCount - 1] := Edit4.Text;
  Edit3.Text := Edit4.Text;

  if StringGrid1.RowCount > 1 then
  begin
    for h := 0 to StringGrid1.RowCount - 1 do
    begin
      Sum := Sum + StrToInt(StringGrid1.Cells[2,h]);
      Edit3.Text := IntToStr(Sum);
    end;
  end;

  while StrToInt(Edit3.Text) > 59 do
  begin
    Edit2.Text := IntToStr(StrToInt(Edit2.Text) + 1);
    Edit3.Text := IntToStr(StrToInt(Edit3.Text) - 60);
  end;

  while StrToInt(Edit2.Text) > 59 do
  begin
    Edit1.Text := IntToStr(StrToInt(Edit1.Text) + 1);
    Edit2.Text := IntToStr(StrToInt(Edit2.Text) - 60);
  end;

  if StrToInt(Edit1.Text) > 23 then
  begin
    Edit1.Text := '0';
  end;

    StringGrid1.Cols[0].Append(Edit1.Text + ':' + Edit2.Text + ':' + Edit3.Text);

end;
Допустим мы задали значение для Edit4 = 120 сек
В данный момент результат выводиться в таком виде: 9:2:0
Мне так не надо!
Надо чтобы результат сводился в нормальный вид!
Тобеж 9:02:00

Как ? (((

Последний раз редактировалось Stilet; 04.08.2010 в 08:15.
Дворник вне форума Ответить с цитированием
Старый 04.08.2010, 06:52   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Ну сравнивай циферки - если меньше 10, то дополняем незначащими нулями
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 04.08.2010, 07:24   #3
Дворник
Заблокирован
 
Регистрация: 03.08.2010
Сообщений: 30
По умолчанию

Нифига. Надо показатель не в численности сравнивать (т.е. < 10), а длину значения Edit.

Т.е.
Код:
If Length(Edit2.Text) < 2 then
  begin
    Edit2.Text := '0' + Edit2.Text;
  end;
...
Однако пока несколько раз тестил, выявилась другая проблема.
Он когда значение Секунд проверяет, то после первого предела и прибавления Мин на ед., с каждым последующим нажатием Button1 он постоянно прибавляет по ед. в к Мин, не смотря на то, что сек менее 59 ((((

Посоветуйте чего-нибудь уже ((

Последний раз редактировалось Stilet; 04.08.2010 в 08:18.
Дворник вне форума Ответить с цитированием
Старый 04.08.2010, 08:03   #4
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

Цитата:
Сообщение от Дворник Посмотреть сообщение
Посоветуйте чего-нибудь уже ((
Код:
uses DateUtils;
ну это наверное будет слишком сложно для вашей задачи.
а так я бы попросил вас рассказать тогда, что у вас находится в гриде

а на счет 59 секунд - все очень просто: if Edit4.Text = '59' then break;
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.

Последний раз редактировалось Sparkman; 04.08.2010 в 08:13.
Sparkman вне форума Ответить с цитированием
Старый 04.08.2010, 11:49   #5
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Я вообще не понял сути вопроса:
вам нужно, например, 120 секунд перевести в формат времени, то есть в 00:02:00 ? Или, что? Убейте меня, но я не понимаю...

Последний раз редактировалось W0LF; 04.08.2010 в 11:52.
W0LF вне форума Ответить с цитированием
Старый 04.08.2010, 12:26   #6
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

format('%2.2d:%2.2d', [число, число]);
ZuBy вне форума Ответить с цитированием
Старый 04.08.2010, 15:00   #7
Дворник
Заблокирован
 
Регистрация: 03.08.2010
Сообщений: 30
По умолчанию



Красное - секунды
Зеленное - сумма всех секунд в SG.Cols[2]

В данном примере 9 раз по 10 сек. Тобеж 90 сек.
Понятное дело что 90 сек - это 1 мин. 30 сек.

Так какого фигаля он мне пишет 9:04:30, когда должно быть 9:01:30 ?!! ((
Надеюсь вопрос понятен.
Дворник вне форума Ответить с цитированием
Старый 04.08.2010, 15:16   #8
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

кинь проект (исходник), без exe
ZuBy вне форума Ответить с цитированием
Старый 04.08.2010, 15:30   #9
Дворник
Заблокирован
 
Регистрация: 03.08.2010
Сообщений: 30
По умолчанию

Там поле Edit4 - это типа длина трека будет в секундах.
Вложения
Тип файла: rar WinRAR archive.rar (3.9 Кб, 7 просмотров)
Дворник вне форума Ответить с цитированием
Старый 04.08.2010, 15:33   #10
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

...................
ZuBy вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование даты alco84 Microsoft Office Access 2 17.03.2010 17:45
Преобразование даты Яр|/||< (^_^) Общие вопросы Delphi 7 18.02.2010 14:45
преобразование даты kate158 SQL, базы данных 1 19.08.2009 12:00
Преобразование даты John34 Microsoft Office Excel 4 24.06.2009 15:48
Преобразование даты Tavrida Microsoft Office Excel 6 31.03.2009 15:41