![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Написал будильник на делфи.
Опишу саму прогу: на форму выведено системное время, 3 комбобокса (часы, минуты и секунды). Еще есть edit, в него попадают цифры из комбобоксов (часы:минуты:секунды). И уже с edit`a сравниваем время с системным, если равно то будильник срабатывает... Всё работает как мне надо, кроме одного! Хотелось бы добавить кнопки быстрого набора, то-есть не копаться в комбобоксах, что бы выставить 5 минут, а сразу нажать на кнопку, которая указала бы в комбобоксе эти самые 5 минут. Пробовал вот так: Код:
var dt: TDateTime; Hours, Minutes, Seconds, Milliseconds: Word; begin dt := GetTime; DecodeTime(dt, Hours, Minutes, Seconds, Milliseconds); cbb1.Text:=IntToStr(Hours); // выводит в первый комбобокс часы cbb2.Text:=IntToStr(Minutes+5); // выводит минуты и прибавляет 5 минут end; ![]() Каким образом можно сделать подобные кнопки быстрого набора ? Не обязательно что бы это происходило через комбобоксы! Посоветуйте что-нибудь. Спасибо. похвастаться ![]() |
#2
|
||||
|
||||
![]() Во-первых, SpinEdit. Во-вторых, if...then. То-есть, если сумма текущих минут и того, что добавляем, больше 59, то вычесть 60. Аналогично с часами (только уже по модулю 24).
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
Этот пользователь сказал Спасибо PhoeniX за это полезное сообщение: | ||
Gareth (25.03.2013)
|
#3
|
|||
|
|||
![]() Цитата:
Код:
if cbb2.ItemIndex >60 then cbb2.ItemIndex:=(-60); Последний раз редактировалось Gareth, 25.03.2013 в 01:12. |
Этот пользователь сказал Спасибо PhoeniX за это полезное сообщение: | ||
Gareth (25.03.2013)
|
#5
|
|||
|
|||
![]() Цитата:
А еще есть модуль DateUtils, в котором есть куча полезный функций работы с датой и временем. А еще есть такой компонент - TDateTimePicker, который позволяет вводить время... |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Gareth (25.03.2013)
|
#6
|
||||
|
||||
![]() Оффтоп:
Цитата:
По теме. УК, кидай прям по совету Феникса, на "похвастаться" ![]() Код:
procedure TForm1.SpinEdit1Change(Sender: TObject); begin with (Sender as TSpinEdit) do begin if Value = MinValue then Value:= MaxValue - 1; if Value = MaxValue then Value:= MinValue + 1; end;{with} end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Gareth (25.03.2013)
|
#7
|
|||
|
|||
![]() Сделал всё как сказали. Заменил combobox на spinEdit, в каждом spinedit прописал
Код:
procedure TForm1.SpinEdit1Change(Sender: TObject); begin with (Sender as TSpinEdit) do begin if Value = MinValue then Value:= MaxValue - 1; if Value = MaxValue then Value:= MinValue + 1; end;{with} end; На кнопке быстрого набора написал тот же код что и в первый раз Код:
var dt: TDateTime; Hours, Minutes, Seconds, Milliseconds: Word; begin dt := GetTime; DecodeTime(dt, Hours, Minutes, Seconds, Milliseconds); se1.Text:=IntToStr(Hours); // выводит часы se2.Text:=IntToStr(Minutes+55); // выводит минуты и прибавляет 5 минут if se2.Value and Minutes >60 then Минуты прибовляются выше 60. Пробовал на кнопке написать Код:
if spinedit2.Value >60 then spinedit2.Value:=(-60); ![]() |
#8
|
||||
|
||||
![]() Кой-чего нужно добавить
Код:
procedure TForm1.tsl(ds: integer); var hour, min, sec: integer; begin min := ds div 60; hour:= min div 60; if min > 60 then min:= min mod 60; sec := ds mod 60; SpinEdit1.Value:=hour; SpinEdit2.Value:=min; SpinEdit3.Value:=sec; end; Код:
procedure TForm1.Button1Click(Sender: TObject); begin tsl((SpinEdit1.Value * 3600) + ((SpinEdit2.Value+ (Sender as TButton).Tag) * 60) + SpinEdit3.Value); end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Gareth (25.03.2013)
|
#9
|
||||
|
||||
![]() Сделай стрелочный циферблат, типа потянул за минутную стрелку - накручиваются минуты, за часовую - часы.
З.Ы. Скрины не вижу, картинки отключены. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#10
|
|||
|
|||
![]() Цитата:
Код:
procedure TForm1.tsl(ds: integer); [Error] Unit1.pas(178): Undeclared identifier: 'tsl' [Error] Unit1.pas(182): Undeclared identifier: 'ds' [Error] Unit1.pas(186): Undeclared identifier: 'SpinEdit1' [Error] Unit1.pas(187): Undeclared identifier: 'SpinEdit2' [Error] Unit1.pas(188): Undeclared identifier: 'SpinEdit3' [Error] Unit1.pas(205): Undeclared identifier: 'tsl' [Error] Unit1.pas(205): ')' expected but identifier 'Value' found [Error] Unit1.pas(205): Statement expected, but expression of type 'Integer' found [Fatal Error] Project1.dpr(6): Could not compile used unit 'Unit1.pas' |
#11
|
||||
|
||||
![]() Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#12
|
||||
|
||||
![]() Ну так че на счет круглого циферблата? Совсем слабО?
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#13
|
||||
|
||||
![]() Цитата:
![]() Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#14
|
||||
|
||||
![]() Ну так скопипиздить ума большого не надо, а вот самому наколбасить?
Вроде ж все проще простого. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#15
|
||||
|
||||
![]() Оффтоп:
Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |