Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];

Вниз

Как сделать так чтобы пользователь не нажал на кнопку много раз?   Найти похожие ветки 

 
Джо ©   (2006-10-07 03:42) [120]

> [119] Ketmar ©   (07.10.06 03:40)
> >[118] Джо(c) 7-Oct-2006, 03:36
> >вызов взвода автоматчиков по расписанию :)
> а вот это уже задача нетривиальная. тут надо как минимум
> модем с поддержкой голоса...

Эх, программисты, программисты... Какой модем? Достаточно одной таблэтки... тьфу, то есть, достаточно договориться с коммандиром автоматчиков. Not a single line of code! :)


 
Джо ©   (2006-10-07 03:43) [121]

> Not a single line of code! :)

but beer :)


 
Ketmar ©   (2006-10-07 03:44) [122]

>[120] Джо(c) 7-Oct-2006, 03:42
>достаточно договориться с коммандиром автоматчиков.
неа. а как он узнает, что кнопка нажата? надо всё равно как-то ему звонить...


 
Джо ©   (2006-10-07 03:46) [123]

> [122] Ketmar ©   (07.10.06 03:44)
> >[120] Джо(c) 7-Oct-2006, 03:42
> >достаточно договориться с коммандиром автоматчиков.
> неа. а как он узнает, что кнопка нажата? надо всё равно
> как-то ему звонить...

А пусть он за спиной стоит. Чего не сделаешь заради торжества IT :)


 
Германн ©   (2006-10-07 03:48) [124]


> Джо ©   (07.10.06 03:42) [120]
>
> > [119] Ketmar ©   (07.10.06 03:40)
> > >[118] Джо(c) 7-Oct-2006, 03:36
> > >вызов взвода автоматчиков по расписанию :)
> > а вот это уже задача нетривиальная. тут надо как минимум
> > модем с поддержкой голоса...
>
> Эх, программисты, программисты... Какой модем? Достаточно
> одной таблэтки... тьфу, то есть, достаточно договориться
> с коммандиром автоматчиков. Not a single line of code! :
> )
>

Эх, программисты, программисты! Достаточно одного  бита, чтобы включить сигнал тревоги! А сам сигнал тревоги должен аппаратно быть привязан к конкретному объекту.


 
Ketmar ©   (2006-10-07 03:58) [125]

>[123] Джо(c) 7-Oct-2006, 03:46
>А пусть он за спиной стоит.
нифига. это уже чисто аппаратное решение. с таким -- на форум каких-нибудь железячников.

>[124] Германн(c) 7-Oct-2006, 03:48
и ты к железячникам. %-)


 
unknown ©   (2006-10-07 04:05) [126]

Интересно, эта ветка перекочует в потрепаться?
Очень уж оффтопа много =)


 
Германн ©   (2006-10-07 04:10) [127]


> Ketmar ©   (07.10.06 03:58) [125]
>
> >[124] Германн(c) 7-Oct-2006, 03:48
> и ты к железячникам. %-)
>

А я так и всегда там! В Дэлфи я только иногда, по "вторичным признакам"! :-)


 
Ketmar ©   (2006-10-07 04:10) [128]

>[126] unknown(c) 7-Oct-2006, 04:05
>Интересно, эта ветка перекочует в потрепаться?
всенепременно. %-)

>Очень уж оффтопа много =)
ну так на вопрос, в принципе, ответили. а поскольку ночь "на субботу" -- развлекаемся. %-)


 
RASkov   (2006-10-07 04:13) [129]

> [21] RASkov   (06.10.06 23:52)

Да, здесь согласен - лажа вообщем, но для конкретной темы это было поэтому и в кавычки взял, а так поторопился - должно было быть так:
"Проглотит" все сообщения, косающиеся этой кнопки (Disabled она)
Application.ProcessMessages - что оно делает? Оно позволяет обрабатывать сообщения в очереди.

> [25] velimir ©   (06.10.06 23:54)

Разрешить программе обработать сообщения в очереди. См выше.

> [28] Ketmar ©   (06.10.06 23:58)

Не все... у некоторых фантазии рассеиваются.

> [31] Ketmar ©   (07.10.06 00:06)
> право же, мы не просто стараемся тут забить базу "мастеров" буковками...

У некоторых это получается. Двусмысленно.

> [32] Ketmar ©   (07.10.06 00:06)

См выше

> [35] velimir ©   (07.10.06 00:14)
Если даже до конца не поймешь как работает, то хотя бы можно использовать!

А здесь я не согласен! Тем самым можно вообще по другой дороге пойти

> [36] Ketmar ©   (07.10.06 00:14)
обработает, а не "обнулит" или "проглотит". разница огромная.

"Проглотит" - это значит пропустит клики т.к. Enabled:=False; Exit;

> [37] Ketmar ©   (07.10.06 00:16)

Но и там, наверное, можно чего нить полезного найти:) Не знаю там не бываю... да и вообще кроме мастаков больше ни где. Хотя имею его знаменитую книжку. Рубли потраченные жалко:) в самом деле - толкового мало.
Имею М. Кэнту - хреново что в книгах F3 неработает (т.е. медленный) и обсудить нельзя конкретные вопросы:(. Использую как справочник.

> я вообще много знаю. что радует -- не знаю ещё больше.

Вот это мне нравится - чем больше начинаешь узнавать, тем больше понимаешь что нифика незнаешь:) И чем же радует незнание?:) Но скорее дело в граматике(или как ее там, в запятых вообщем).

> [44] Ketmar ©   (07.10.06 00:29)

Аргументированные и обаснованные посты подкрепленные примером и в нужных местах +F1 Читать приятней и уже знаешь что в книжке искать (утрировано).

> [47] Ketmar ©   (07.10.06 00:34)

Насчет Ф.М. это, наверное, верно, а Архангельского не читал и невидел, но уже точно знаю, где съэкономить деньги и время.

> [53] Германн ©   (07.10.06 00:52)

Я знал про посылки сообщений "себе", но практически не применял, т.к. "не видел" необходимости. В этой ветке некоторые прояснения....

> [55] Ketmar ©   (07.10.06 00:53)

Ни чуть. Я хоть и не считаю себя прямо уж совсем новичком, но см [39] вторую часть и здесь мой ответ на это:)

> [56] Ketmar ©   (07.10.06 00:55)

Да, но если SendC "принимать" сообщения... хотя автор об этом незнал.

> [62] velimir ©   (07.10.06 01:05)

А я вот понял сахар [53]:)

> [63] Германн ©   (07.10.06 01:09)

Ну да Post это не Send
PostMessage - синхронная передача (потом)
SendMessage - асинхронная. (сразу)

> [64] Palladin ©   (07.10.06 01:10)

К сожалению, ни это ни [7] не работают должным образом.

> а зачем тут тэг вообще?

Тэг - это сила:) "Че угодно в него засунуть можно":) и даже строки.

> [67] Германн ©   (07.10.06 01:15)

Без сомнений:)

> [68] velimir ©   (07.10.06 01:15)

но и без Tag"ов или Enabled (можно хоть Caption или даже Цвет фонта задействовать - его у стандартной кнопки серавно невидно:) ну это грубо) - Application.ProcessMessages; в конкретном случае не поможет

> [69] Ketmar ©   (07.10.06 01:16)

А где в [69] "Опасные" участки помоему криминала особого нет. Это именно про этот кусок кода.

> [71] Ketmar ©   (07.10.06 01:17)

Я считаю лучше отключать, что бы не было повода тыкать в нее... ИМХО.

> [74] RASkov   (07.10.06 01:24)

ОшиПся.

> [75] Ketmar ©   (07.10.06 01:24)

Уговорил, как всегда:)

> [78] RASkov   (07.10.06 01:26)

Хоть и ошибся с Terminated, но поведение "странное"...:)

> [79] Ketmar ©   (07.10.06 01:26)

Ну вот по этому то наверное и поведение такое...:) [78]

> [81] Palladin ©   (07.10.06 01:31)

поправка - это шутка.:)

> [84] Ketmar ©   (07.10.06 01:35)

Правильно, авось и глупость сморозишь, как я быват.:)
Стараюсь потом косяки замазывать:) И мотаю на ус "пинки", но только не(невсегда) от Ketmarа про веники:) Хоть иногда и задумываюсь о вениках, но сразу гоню мысли теми же вениками:)

Не сдержался по [23];)
Ну ладно, сообственно дальше уже не поделу... и так уже лишнего написал.


> [96] Германн ©   (07.10.06 02:01)

Но у меня смутное подозрение, что это АП от Ketmara (про мётлы):))
Просто раньше от АП такого не замечал, да и бывал раньше редко здесь сейчас чаще.

ЗЫ можно было это и не читать, так статистика дискуссии... настроение у меня такое... неспытся. Если что не так поправьте или сразу в сад:) усеравно не пойду.:) а к сведению приму.


 
Германн ©   (2006-10-07 04:19) [130]


> unknown ©   (07.10.06 04:05) [126]
>
> Интересно, эта ветка перекочует в потрепаться?
> Очень уж оффтопа много =)
>

Фифти-фифти, а точнее ХЗ.
Оффтопа много, но, имхо, существа больше гораздо.


 
Германн ©   (2006-10-07 04:27) [131]

RASkov   (07.10.06 04:13) [129]
Очень длинно и очень не во время. Прочитал, но "моск" уже мало что соображает! :-) Если что нужно, то завтра вечером.


 
Ketmar ©   (2006-10-07 04:30) [132]

>[129] RASkov 7-Oct-2006, 04:13
>"Проглотит" - это значит пропустит клики т.к. Enabled:=
>False; Exit;
ProcessMessages() ничего не "пропустит". ей вообще плевать на кнопки и прочую дребедень.

>И чем же радует незнание?:)
тем, что есть ещё куча всего интересного. и это интересное можно узнать.

>примером и в нужных местах +F1
а по-моему, умному достаточно ключевого слова для поиска в справке. как я и отвечаю обычно.

>> [53] Германн c  (07.10.06 00:52)
>Я знал про посылки сообщений "себе", но практически не
>применял, т.к. "не видел" необходимости. В этой ветке
>некоторые прояснения....
есть ещё случай: сделать какую-то инициализацию после отработки конструктора формы и всех начальных её событий. часто предлагают цепляться на OnShow(), или ещё какие извраты. спорят до хрипоты -- когда и какое событие вызывается, какое последнее... хотя самое простое решение -- PostMessage() себе.

>PostMessage - синхронная передача (потом)
>SendMessage - асинхронная. (сразу)
всё с точностью наоборот. ты попутал термины "синхронная" и "асинхронная" (хотя пояснения в скобках правильные %-).

>Тэг - это сила:) "Че угодно в него засунуть можно":) и
>даже строки.
не советую. проблем не оберёшься.

>А где в [69] "Опасные" участки
а мало ли, где исключение вывалится? то, что должно быть выполнено в любом случае -- всегда лучше заключать в try ... finally.

>Но у меня смутное подозрение, что это АП от Ketmara (про
>мётлы):))
по-моему, активно "метёлочную" тему начал продвигать именно я. %-)


 
Германн ©   (2006-10-07 04:41) [133]


> по-моему, активно "метёлочную" тему начал продвигать именно
> я. %-)
>

Имхо, ты. Но тему "дворников", имхо кто-то другой. Кто, не помню. Но это и не имеет особого смысла сегодня.


 
RASkov   (2006-10-07 04:55) [134]

> есть ещё случай: сделать какую-то инициализацию после отработки
> конструктора формы и всех начальных её событий. часто предлагают
> цепляться на OnShow(), или ещё какие извраты. спорят до
> хрипоты -- когда и какое событие вызывается, какое последнее...
> хотя самое простое решение -- PostMessage() себе.

А вот это уже дело.


 
RASkov   (2006-10-07 05:00) [135]

> >PostMessage - синхронная передача (потом)
> >SendMessage - асинхронная. (сразу)
> всё с точностью наоборот. ты попутал термины "синхронная"
> и "асинхронная" (хотя пояснения в скобках правильные %-)
> .

Как всегда:) путаю эти синх асинх. для этого в скобках и пояснил:)

> по-моему, активно "метёлочную" тему начал продвигать именно
> я. %-)

Я не совсем это имел ввиду, раньше АП больше кодом отвечал.... ИМХО.
А сейчас тажа картина что и с Ketmar:)


 
RASkov   (2006-10-07 05:19) [136]

> >[129] RASkov 7-Oct-2006, 04:13
> >"Проглотит" - это значит пропустит клики т.к. Enabled:=
> >False; Exit;
> ProcessMessages() ничего не "пропустит". ей вообще плевать
> на кнопки и прочую дребедень.

К стати, в этом случае тебе надо было без ковычек писать - пропустит.
Ну хорошо не пропустит, но в данном случае он позволит принять проге все сообщения, в том числе и этой кнопке, но так как она Disabled то клик не сработает. И тем самым "пропустит":) Но земля ж не круглая:)


 
Ketmar ©   (2006-10-07 05:27) [137]

>[135] RASkov 7-Oct-2006, 05:00
>Я не совсем это имел ввиду, раньше АП больше кодом отвечал.
во время моего первого появления здесь (год 2k или около этого) я тоже отвечал кодом, разжёвывал... потом устал очевидное пояснять. так у меня хоть перерывы были...


 
RASkov   (2006-10-07 05:41) [138]


> достаточно ключевого слова для поиска в справке. как я и
> отвечаю обычно.


По ключевому слову "метла", чет ниче не находится в справке Delphi :)

> Ketmar ©   (07.10.06 05:27) [137]

Что верно то верно...... А может тогда лучше промолчать?
Хотя кто ее знает, что лучше.


 
Ketmar ©   (2006-10-07 05:52) [139]

>[138] RASkov 7-Oct-2006, 05:41
>А может тогда лучше промолчать?
зачем? я обычно или указываю на ошибку, или даю направление поиска, или и то, и другое. тут ещё дело в том, что немного изменились способы достижения цели.

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


 
velimir ©   (2006-10-07 14:20) [140]

Всем доброе утро и еще раз спасибо! Все работает!

ЗЫ: Я же специально полез в рубрику для "начинающих", чтобы разжевали!
Потому как, программирую под форточки менее месяца... и с механизмом сообщений был не знаком.. Теперь (при вашей активной помощи) во-первых, нашел нужную литературу; во-вторых, сделал прогу с "защитой от дурака";
в-третьих, я теперь знаю где и кто толково подскажет срешением конкретной непонятки!


 
Anatoly Podgoretsky ©   (2006-10-07 15:50) [141]

Код плохой, вместо
procedure TfmMain.btnOneClick (Sender: TObject)
begin
if (btnOne.Enabled) then
begin
  btnOne.Enabled := false;

следует написать
  (Sender ad TButton).Enabled := false;
И так далее


 
Leonid Troyanovsky ©   (2006-10-07 16:13) [142]


> Velimir ©   (06.10.06 19:56)  

> Может кто подскажет как решить вопрос при помощи пункта
> 1, или предложит свой способ!!!


Это делается примерно так:

1. Делаем дополнительную диалоговую форму с таймером
(или форму ожидающую определенное событие). Такая
форма закрывается, например, при срабатывании таймера.

2. При нажатии на кнопку показываем ее путем ShowModal.

Форма ожидающая определенного события может выглядеть,
например, так:

http://groups.google.com/group/fido7.ru.delphi.chainik/msg/c355993ba823b53c

--
Regards, LVT.


 
DeBa   (2006-10-07 17:18) [143]

> [141] Anatoly Podgoretsky ©   (07.10.06 15:50)

Вы наверное не осилили прочитать всю ветку.


 
RASkov   (2006-10-07 18:45) [144]

> [140] velimir ©   (07.10.06 14:20)


> в-третьих, я теперь знаю где и кто толково подскажет срешением
> конкретной непонятки!

Прежде всего почитай как правильно задавать вопросы (это не относится к этому разу)....
и осторожней тут, а то на метлу нарваться можно:)


 
velimir ©   (2006-10-07 20:13) [145]

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


 
Пусик ©   (2006-10-08 01:02) [146]

Вай, сколько умных людей.
Все такие гуру... Посылают книжки читать... Разные ртфм...
Говорят, что ничего начинающим писать не надо, пока те гуру не станут...
Сколько слов умных... да КАКИХ слов.

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


 
unknown ©   (2006-10-08 01:30) [147]


> Пусик ©   (08.10.06 01:02) [146]

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


 
Германн ©   (2006-10-08 01:48) [148]


> Leonid Troyanovsky ©   (07.10.06 16:13) [142]
>

Тоже вариант. И в некоторых случаях он более предпочтителен, чем прочие. Но у автора сабжа изначально был затык, который никак не учтён в [142].


 
RASkov   (2006-10-08 01:54) [149]

> [146] Пусик ©   (08.10.06 01:02)

Здесь не учат. Учат в школах, институтах...
Здесь форум, здесь советуют, рассказывают, делятся мнениями....
А вот кому суждено тот учится.

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

Это интересно в чей адрес?
Пусик, можно подумать Ваши посты 150 % верные и до ужоса правильные всегда.:)
ИМХО Здесь не надо учить - здесь надо учиться.


 
Пусик ©   (2006-10-08 02:28) [150]


> unknown ©   (08.10.06 01:30) [147]
> > Пусик ©   (08.10.06 01:02) [146]Здесь никто никого не
> учит. Это форум. Здесь обсуждают, а не обучают.


Это в сторону кого выпад? В сторону тех, кто свысока менторским тоном провозглашает истины? Или ко мне?

Так я предпочитаю в ответах на вопросы объяснять, а не провозглашать.


> RASkov   (08.10.06 01:54) [149]
> > [146] Пусик ©   (08.10.06 01:02)Здесь не учат. Учат в
> школах, институтах..


См. выше.


> Это интересно в чей адрес?Пусик, можно подумать Ваши посты
> 150 % верные и до ужоса правильные всегда.:)ИМХО Здесь не
> надо учить - здесь надо учиться.


Не в твой однозначно ;-)

Мои посты спорные и не всегда венрные. Но в них нет заносчивости и фанатичной веры в свою непогрешимость и право менторским тоном поучать других. Или нет так?
Хотя, может ты и не видел моих постов - я давненько не учавствовала в дискуссиях.

Кроме того, этот форум является именно таким местом, где можно учить. Но учить. А не проявлять свою крутость перед новичками, едва выросши из тех же самых ползунков.


 
Percent   (2006-10-08 02:36) [151]

я давненько не учавствовала в дискуссиях

Что мешает?


 
unknown ©   (2006-10-08 02:54) [152]


> Пусик ©   (08.10.06 02:28) [150]
> Так я предпочитаю в ответах на вопросы объяснять, а не провозглашать.

Пример провозглашения приведите.

> Кроме того, этот форум является именно таким местом, где
> можно учить. Но учить. А не проявлять свою крутость перед
> новичками, едва выросши из тех же самых ползунков.

И пример "крутости" тоже.


 
Германн ©   (2006-10-08 03:00) [153]

2 Пусик ©
Не хочу спорить с тобой ни об чём. Только ответь, что именно тебя заставило сюда залезть!


 
unknown ©   (2006-10-08 03:22) [154]


> Германн ©   (08.10.06 03:00) [153]

+1


 
Virgo_Style ©   (2006-10-08 12:25) [155]

Германн ©   (08.10.06 3:00) [153]
Только ответь, что именно тебя заставило сюда залезть!


...и помешало ответить на вопрос автора.


 
Пусик ©   (2006-10-08 15:22) [156]


> ..и помешало ответить на вопрос автора.


А что, обязательно свою версию ответа надо, если в ветке есть правильная?

Ответ был дан в RASkov   (07.10.06 00:25) [40] вопреки упомянутым в [146] и [150].


> Германн ©   (08.10.06 03:00) [153]


> Virgo_Style ©   (08.10.06 12:25) [155]


Что заставило? Возмущение тоном "ответов".
Ну тут уж никуда не денешься.


 
Percent   (2006-10-08 16:35) [157]

Пусик ©   (08.10.06 15:22) [156]

См. [40], [41].


 
Пусик ©   (2006-10-08 16:57) [158]


> Percent   (08.10.06 16:35) [157]
> Пусик ©   (08.10.06 15:22) [156] См. [40], [41].


Достаточно было совместить 2 метода - обнуление ссылки на обработчик и выборку сообщений из очереди:

procedure TForm1.Button1Click(Sender: TObject);
var
 BOnClick: TNotifyEvent;
 Button: TButton;
begin
 BOnClick := (Sender as TButton).OnClick;
 Button := TButton(Sender);
 Button.OnClick := nil;
 SendC;
 Application.ProcessMessages;
 Button.OnClick := BOnClick;
end;


 
Пусик ©   (2006-10-08 17:08) [159]

Это решение в разных видах уже было приведено в первых 20 постах.


 
Percent   (2006-10-08 17:10) [160]

Достаточно было совместить 2 метода - обнуление ссылки на обработчик и выборку сообщений из очереди:

Метод, он один: Button1Click(); :-)

А решение было дано еще в первых постах.
А некоторые уже за полторы сотни перетянули.

Вопрос: Кто помогает?



Страницы: 1 2 3 4 5 6 вся ветка

Форум: "Прочее";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.84 MB
Время: 0.065 c
2-1160984972
gvozdkoff
2006-10-16 11:49
2006.11.05
Paradox на другом компе


15-1161169749
Сергей М.
2006-10-18 15:09
2006.11.05
Эмуляция HL EYE


2-1161069191
Батя
2006-10-17 11:13
2006.11.05
Типа listbox a только в место текста картинки


15-1160886789
ира
2006-10-15 08:33
2006.11.05
клавиатура


2-1161614697
pathfinder
2006-10-23 18:44
2006.11.05
Представление строки как последовательности байтов..





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский