forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   Alert (http://forum.boolean.name/showthread.php?t=1487)

archerix 13.09.2006 03:46

Alert
 
Здравствуйте, народ
Пару дней бьюсь с Alert, ничего не пойму. Вот просто пример из программы:

Код:


procedure vdetail;
var cm : command;
salrt, scapt: String;
begin
scapt:='Подробнее...';
salrt:='Эта программа написана...';
showAlert(scapt, 
salrt,
loadImage('/detail.png'), 
ALERT_CONFIRMATION); 
  playAlertSound;   
  cm := createCommand('Назад', CM_BACK, 1); 
 
  addCommand(cm); 
  delay(1500);
    repeat 
        delay(25); 
  until getClickedCommand <> emptyCommand; 
  showForm;// this will clear alert from the screen  -
                //хорошая фразочка из мануала, лучше уж сразу ClearForm
    viewprog; // руками отрисовываю все назад на экране
 
end;

В реальности у меня в алерт выводятся строки разной длинны из массива. То Алерт выводится вообще без "кнопок", то с кнопкой "ОК", но иногда срабатывает как я хотел, с кнопкой "Назад". Особенно добивает время показа - сколько не ставь в delay, никакой реакции, программа сама решает. Если текст короткий, пропадает через секунды полторы, хороший тренажер скорочтения:) Вот если длинная строка, тогда ждет. Кто-нить знает, как с алертом бороться?

dermeg 13.09.2006 17:44

Re: Alert
 
Этот алерт просто лажа у меня тоже самое было. Пару секунд и вылетало обратно. Попробуй вот так:

//о программе
procedure aboutShow;
var salrt, scapt: String;
label_id: integer;
cm : command;
begin
showForm;
setTicker(scapt);
label_id:=formAddString(salrt);
cm := createCommand('Назад', CM_BACK, 1);
addCommand(cm);
repaint;
repeat
delay(100);
clicked := getClickedCommand;
until clicked = cm;
removeCommand(cm);
clearForm;
showCanvas;//ну или обратно в меню
end;

archerix 16.09.2006 14:04

Re: Alert
 
Ну, это без алерта, просто на форме написать фактически... Все-таки сделал с алертом, когда много текста, оно себя ведет аккуратнее.

Вообще некую логику тут можно усмотреть - время показа зависит от объема информации, чем больше, тем дольше. Раздражает, что не получается явно время задать, ну бог с ним.

Piligrim 17.09.2006 10:19

Re: Alert
 
Его можно задать, но опять таки через библиотеку
FOREVER - тоеесть до нажатия команды

archerix 17.09.2006 14:51

Re: Alert
 
Да эт понятно, что через библиотеку все можно... С библиотеками пока туго. Пытался вот вчера сделать библиотеку на добавление "дела" в календарь, не вышло :(
Кстати, pilgrim, спасибо за библиотеку ui. Массу времени сэкономилось.

Piligrim 18.09.2006 11:00

Re: Alert
 
к сожалению, похоже проект умер, а так бы я думаю это все уже добавили
ЗЫ: как только начинаешь писать либы, понимаешь, что проще писать непосредственно на яве.

archerix 18.09.2006 11:24

Re: Alert
 
Кому как. Я с явой дела никогда не имел, с С тоже. А вот в паскале и дельфи опыт изрядный :) Так что мне проще на МП.

Может разработчики обломались и ждут, когда энтузиасты сами за них все сделают в виде библиотек?

Piligrim 18.09.2006 22:31

Re: Alert
 
посмотри что творится на родном форуме МР и подумай.

NightOWL 27.09.2006 17:25

Re: Alert
 
Экспериментируя с программкой из первого поста, я добавил в нее команду "Выход" на оставшуюся свободной софт клавишу. И на моем Сонерике "горячо" любимый вами Alert заработал нормально!

archerix 28.09.2006 04:28

Re: Alert
 
У меня на ноке тоже. Правда, надписи на кнопках по-прежнему косячат - то они есть, то их нету. Но исчезать в таком пожарном порядке по крайней мере перестало :)

AssA 15.09.2011 13:17

Ответ: Alert
 
не знаю, актуально ли, но поборол добавлением delay(5):


Код:

    clearForm;
    delay(5);
    showAlert(scr_msg_capt, scr_msg_err_text, loadImage(SM_ICO_MSG), ALERT_ERROR);
    playAlertSound;
    AddCommand(cmd_sett);
    AddCommand(cmd_exit);


alexprey 15.09.2011 18:52

Ответ: Alert
 
Ну ты и археолог XD "28.09.2006, 03:28"


Часовой пояс GMT +4, время: 13:08.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot