Библиотека визуальных компонентов JEDI: компонент JvAlarms (несколько вопросов)

Решил попробовать компонент JvAlarms. Так я и сделал :

procedure TForm1.Button1Click(Sender_TObject);
begin
jvAlarms1.Add.Name :=Edit1.Text;
jvAlarms1.Add.Time := dxDateTimeWheelPicker1.DateTime;
label1.caption:=datetimetostr(dxDateTimeWheelPicker1.DateTime);
jvAlarms1.Active:=True;
end;

Теперь странная часть заключается в том, что когда я устанавливаю будильник и запускаю приложение, я сразу же получаю всплывающее окно с моим тревожным сообщением. Это по дизайну? После того, как я закрою это сообщение, приложение позже вызовет сигнал тревоги, который я установил вовремя. Мне просто интересно, есть ли это немедленное всплывающее окно по умолчанию, или вы можете отключить его и как. Если вы не можете, можно ли изменить его, чтобы вы могли хотя бы сказать что-то пользователю, например, «вы установили будильник: имя будильника, чтобы сработать: время будильника».

Второй вопрос касается тревожного сообщения. Как получить название тревожного сообщения при срабатывании будильника?

Я старался :

ShowMessage('Тревога:'+ jvAlarms1.Name);

но, похоже, это не работает. Я могу получить это с помощью:

ShowMessage('Тревога:'+jvAlarms1.Items[0].Name;

Но я не знаю индексы добавленных будильников!? Так что я не могу использовать это. В любом случае я могу получить список сигналов тревоги, добавленных моим кодом?

Третий вопрос касается хранения сигналов тревоги. Вы загружаете их из *.ini или можете использовать базу данных? Я нигде не мог найти примеры такого использования (здесь результаты поиска становятся «0»), поэтому я был бы признателен, если бы кто-нибудь мог указать мне правильное направление.


person user3351050    schedule 31.12.2016    source источник
comment
Вам нужно узнать, как работает этот сайт. Это сайт вопросов и ответов. Обратите внимание, что это не questionS — вопрос в единственном числе. Общее правило — один вопрос на пост; это иногда может быть расширено до двух, если они тесно связаны. Это не выходит за рамки этого, и мы не пишем здесь учебники. Если у вас есть несколько вопросов, создайте отдельные сообщения и задайте их; если вам нужно сослаться на предыдущие детали, вы можете ссылаться на предыдущие вопросы из нового (-ых). А с библиотеками компонентов с открытым исходным кодом (в частности, JEDI) вам нужно будет погрузиться в исходный код; нет документов.   -  person Ken White    schedule 31.12.2016


Ответы (1)


Вы добавили два будильника, потому что дважды вызывали Add. Вместо этого вызовите его один раз:

var
  Item: TJvAlarmItem;
.... 
Item := jvAlarms1.Add;
Item.Name :=Edit1.Text;
Item.Time := dxDateTimeWheelPicker1.DateTime;

Когда срабатывает тревога, событие OnAlarm компонента получает ссылку на конкретную тревогу, которая сработала. Вы можете прочитать имя из этой ссылки.

Это полностью зависит от вас, где вы храните сигналы тревоги в своем приложении.

person David Heffernan    schedule 31.12.2016
comment
когда эти сигналы тревоги срабатывают, они после очищаются (удаляются) сами по себе или...? Если вы используете базу данных или ini, то вы должны использовать таймер? Документации о том, как это сделать, нет. Хорошо, Кен, я прислушаюсь к твоему совету. Возможно, лучше. - person user3351050; 31.12.2016
comment
@ user3351050: Не очень хорошо, видимо. :-) Теперь вы пытаетесь задать два дополнительных вопроса в комментариях. Пожалуйста, прочитайте мой комментарий к вашему вопросу еще раз - если у вас есть новые вопросы, создайте новый пост и задайте их там. - person Ken White; 31.12.2016
comment
@David Heffernan: Item:=jvAlarms1.Add; компилировать? Думаю, нет. - person user763539; 31.12.2016
comment
Не получится... Недостаточно фактических параметров... :) - person user763539; 31.12.2016
comment
@user763539 user763539 Тогда объясни код в вопросе? Казалось бы, у аскера другая версия JEDI. - person David Heffernan; 31.12.2016
comment
@user76 user76 Посмотрите на код в вопросе. Я только что следовал указаниям, установленным там. - person David Heffernan; 31.12.2016