Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Исчезает окно предупреждения. [D7, WinXP]


Страницы:   1 2 3

kyn66 ©   (2009-08-20 10:50:00) 

Добрый день мастера. В своей программе по сканированию(сканер штрихкода) билетов лотерей пытаюсь выдать предупреждающее сообщение в случае повторного сканирования одного и того-же билета. Выполняю это за счет промежуточных таблиц, в которых сохраняю успешые данные о билете. Однако окно предупреждения быстро мелькнет и не появляется. В чем может быть дело?

...
procedure ErrorMsg(st : String);
begin
 Application.MessageBox(PChar(st), 'ОШИБКА !', MB_OK + MB_ICONHAND);
end;
...
          else
           if(DM1.TiragSLTbl.FindKey([StrToInt(SerLab), Nomlab + IndLab])) then
            if not TirMemTbl.Locate('Tir;Bilet', VarArrayOf([StrToInt(SerLab), Nomlab + '.' + IndLab]), []) then
             begin
               TirMemTbl.InsertRecord(['', StrToInt(SerLab), Nomlab + '.' + IndLab, Dm1.TiragSLTblWinSum.Value]);
               StaticText3.Caption := Razrad(DM1.TiragSLTblWinSum.AsString);
               Image1.Picture.Bitmap := PicClip1.GraphicCell[0];
             end
            else
             begin
                ErrorMsg('Повторное сканирование билета !');
               Edit1.SetFocus;
               Edit1.SelectAll;
               Exit;
             end;


kyn66   (2009-08-31 10:04:00) [1]


> вообще, если кассир/юзер настолько туп, что не с состоянии
> понять "тревожный" писк значит


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


Leonid Troyanovsky   (2009-08-25 23:40:00) [2]


> sniknik ©   (25.08.09 21:49) [58]

> гнать надо дизайнера с работы... ему должны нравиться не
> предупреждения, а сама работа.

Понятно, что гнать-то изначально надо юзера.
Хотя, и таких дизайнеров и прочих кульманов.

--
Rergards, LVT.


sniknik   (2009-08-25 21:49:00) [3]

> Может ему текст, цвет или звук предупреждения понравился.
гнать надо дизайнера с работы... ему должны нравиться не предупреждения, а сама работа. предупреждения должны пугать.

кстати зайдите в какой нибудь супермаркет в час пик и понаблюдайте за кассирами, как они тавар сканируют... и что бывает если товар "не проходит", выскакивают там какие то "предупреждающие" окошки?
знаю случаи когда от программ изза таких окошек сбивающих ритм работы отказывались в пользу более дорогих (и намного, т.к. они бывают "срощены" с аппаратом, одно без другого не продается)

вообще, если кассир/юзер настолько туп, что не с состоянии понять "тревожный" писк значит, что товар не прошел/билет проигнорировался,  то его лучше уволить... это как, убил бобра - спас лес, так и тут, уволил идиота - спас удобство и функциональность процесса для нормальных.


Leonid Troyanovsky   (2009-08-25 19:45:00) [4]


> kyn66 ©   (25.08.09 16:10) [56]

> сканирует, то в данном случае можно интерпретировать действия
> оператора необдуманными, т.е. ошибочными, а посему его нужно
> предупредить, что он не так делает.

А чего это сразу и "необдуманными"?
Может ему текст, цвет или звук предупреждения понравился.

--
Regards, LVT.


kyn66   (2009-08-25 16:10:00) [5]


> Да никакой ошибки не приозошло, опять же по словам автора.


Если оператор будет без конца сувать один и тот-же билет, а на его розум покажется что программа не реагирует и не сканирует, то в данном случае можно интерпретировать действия оператора необдуманными, т.е. ошибочными, а посему его нужно предупредить, что он не так делает.


Anatoly Podgoretsky   (2009-08-21 13:19:00) [6]

Да никакой ошибки не приозошло, опять же по словам автора.


Kolan   (2009-08-21 11:46:00) [7]

О факте аннулирования нужно обязательно уведомлять. Иначе, по простому, будет: «я сую сую, а оно не работает», а по умному: из-за отсутствия обратной связи человеку будет трудно понять на каком уровне произошла ошибка.


Anatoly Podgoretsky   (2009-08-21 11:40:00) [8]

> Kolan  (21.08.2009 10:45:52)  [52]

Но не в данном случае, здесь результат анулируется и вводится ненужный внешний раздражитель. Автор утверждает, что это не ошибка, поэтому и называет, что это предупреждением.


Kolan   (2009-08-21 10:45:00) [9]

Сообщать об ошибки надо обязательно иначе человек будет мучатся, ему будет трудно понять дали ли его действия нужный результат. Обратная связь очень важна.


kyn66   (2009-08-21 10:37:00) [10]


> Тогда нафига какие то диалоги, окна,звуки


Хм, пользователь в любом случае должен быть информирован о невероных действиях. И я не думаю, что это будет происходить очень часто... но всетаки, вариант должен быть предусмотрен.


Anatoly Podgoretsky   (2009-08-20 18:16:00) [11]

> kyn66  (20.08.2009 16:26:44)  [44]

Тогда нафига какие то диалоги, окна,звуки - очень ненадишь пользователей?


sniknik   (2009-08-20 17:42:00) [12]

> Никак , я за это отвечаю
ну я про что? а раз никак то ему пофигу в какое окно данные посылать, и кнопка на диалоговом окне с его точки зрения ничуть не хуже едита...
вот открой свой ErrorMsg до того как что то сканировал (и оно закрылось) и проведи сканером по билету (тем у которого у тебя есть постфикс в виде ентера).
это и была бы следующая проблема при той схеме, если бы решил конечно очистку "буфера" клавиатуры.


kyn66   (2009-08-20 16:50:00) [13]


> как сканер узнает про фокус Edit1-а?

Никак , я за это отвечаю. Сканер как выполнял свою прямую работу так и продолжает...


Kolan   (2009-08-20 16:35:00) [14]

Model-View-Controller (MVC) неплохо работает, советую ознакомится с этим архитектурным решением. Получение кода в TEdit полностью противоречит MVC отсюда и большинство проблем.


sniknik   (2009-08-20 16:32:00) [15]

> Сканер не сработает, т.к. в данный момент потеряет фокус элемент Edit1
как сканер узнает про фокус Edit1-а? вот сейчас про "прицепленный" ентер не узнаёт, а про цифры/и ентер от следующего скана узнает... какая избирательность...
(да если бы у тебя так было, то нынешней проблемы бы не было)

> А данные по билету не запишутся
ну и о чем тогда сыр бор? или создается специальный механизм сообщений чтобы пользователей раздражать?


kyn66   (2009-08-20 16:30:00) [16]


> В техническом плане мне вообще кажется, что обработка получения
> кода окнами неверная.


О как. Я раньше как-то долго и упорно спрашивал у народа, каким образом обработать полученные данные со сканера, как их впринципе получить. Сканер обычный, ручной. Через Tedit или ему подобные в основном обработка и происходит и не только у меня. Только в отличие от других программя я еще предусмотрел и контроль за потерей фокуса компонентом TEdit, который получает данные от сканера.


kyn66   (2009-08-20 16:26:00) [17]


> код уникален? тогда простая табличка/рекордсет и проверка
> на существующий уже в ней код... и не нужно никаких предупреждений,
>  просто в лог или где то сбоку показывать что код уже был
> и проигнорирован.пусть хоть обсуются одним и тем же билетом.
> ..

Так и сделал, просто помигал красной рамкой пару секунд и типа предупредил. А данные по билету не запишутся, т.к. действительно проверяется в таблице уже записанные просканированные билеты по уникальному номеру и серии


Palladin   (2009-08-20 16:24:00) [18]


> [31] Дмитрий Белькевич   (20.08.09 14:43)

определение "уг" в студию.


kyn66   (2009-08-20 16:23:00) [19]


> проверь уж все   begin   Application.ProcessMessages;  
> EmptyKeyQueue;   Sleep(0);   ErrorMsg('Повторное сканирование
> билета !');...можно в разных комбинациях.

Неа, не работает, проверил


kyn66   (2009-08-20 16:20:00) [20]


> а если невнимательный товарищ "просканит" штрихкод уже при
> "поднятом" окне сообщений?


Сканер не сработает, т.к. в данный момент потеряет фокус элемент Edit1, на свойстве onChange и происходит обработка полученного значения по штрихкоду


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо