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

Вниз

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

 
Velimir ©   (2006-10-06 19:56) [0]

Ситуация такова. Для простоты начну с куска кода

procedure TfmMain.btnOneClick (Sender: TObject)
begin
 if (btnOne.Enabled) then
 begin
   btnOne.Enabled := false;
//вызываем процедуру отсылки на девайс
   SendC;
//Ждем 1 секунду пока отработает девайс
   sleep(1000);
   btnOne.Enabled := true;
 end;
end;

А теперь дело в следущем, если пользователь нажимает кнопку более одного раза, то происходит несколько вызовов данной процедуры OnClick.
И собсно возникает сабж?

У меня было 2 решения проблемы:
1. Почистить буфер клавы и мыши (но я не знаю как!!!)
2. Закрыть кнопку другой кнопкой. Но т.к. кнопок много (более 20, просто общее тело процедур похоже), то этот вариант не подходит.

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

Заранее благодарен за помощь!


 
Loginov Dmitry ©   (2006-10-06 20:07) [1]

btnOne.Enabled := false;


 
velimir ©   (2006-10-06 22:28) [2]

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

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


 
Zeqfreed ©   (2006-10-06 22:31) [3]

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


 
Palladin ©   (2006-10-06 22:39) [4]

неозябательно... tag есть... :)


 
velimir ©   (2006-10-06 22:50) [5]

А можно пример? А то я в Делфях лох... Всю жизнь на Си и Ассе в Досе писал проги

Заранее благодарен!


 
velimir ©   (2006-10-06 23:11) [6]

Palladin, а как можно tag использовать?


 
Palladin ©   (2006-10-06 23:13) [7]

хем

procedure TfmMain.btnOneClick (Sender: TObject)
begin
if (btnOne.tag=0) then
begin
  btnOne.tag := 1;
//вызываем процедуру отсылки на девайс
  SendC;
//Ждем 1 секунду пока отработает девайс
  sleep(1000);
  btnOne.tag := 0;
end;
end;


 
Percent   (2006-10-06 23:14) [8]

Sleep(1000);
Application.ProcessMessages;
btnOne.Enabled := true;


 
RASkov   (2006-10-06 23:18) [9]

procedure TForm2.Button1Click(Sender: TObject);
var N: Integer;
begin
 if not (Sender as TButton).Enabled then Exit;
 (Sender as TButton).Enabled:=False;
 for N:=0 to 3000 do Caption:=IntToStr(N);
 Application.ProcessMessages;
 (Sender as TButton).Enabled:=True;
end;


 
RASkov   (2006-10-06 23:18) [10]

Ну да как и [8]


 
RASkov   (2006-10-06 23:20) [11]

Вместо Sleep и for N:=0 to 3000 do Caption:=IntToStr(N);
вызываем SendC;


 
velimir ©   (2006-10-06 23:38) [12]


> Zeqfreed
> Она не запоминает нажатия, а сообщения скапливаются в очереди.
>  Обнуляй обработчик на время обработки.

Как обнулить счетчик сообщений?


 
Ketmar ©   (2006-10-06 23:40) [13]

>[12] velimir(c) 6-Oct-2006, 23:38
>>  Обнуляй обработчик на время обработки.
>Как обнулить счетчик сообщений?
ему про Фому, а он про Ерёму...


 
Zeqfreed ©   (2006-10-06 23:44) [14]

> [12] velimir ©   (06.10.06 23:38)

Уже предложили использовать Application.ProcessMessages;


 
velimir ©   (2006-10-06 23:45) [15]

Ketmar, сорри... Опечатался.... =)
Как обнулить обработчик на время обработки?


 
RASkov   (2006-10-06 23:46) [16]

Автору>
А я вот даже проверил то что написал... и работает ведь... Или не то что надо?


 
velimir ©   (2006-10-06 23:47) [17]

Т.е. Application.ProcessMessages; обнулит счетчик на время обработки?

Опять опечатался в предидущем сообщении =)


 
RASkov   (2006-10-06 23:48) [18]

> [17] velimir ©   (06.10.06 23:47)

Так уже попробывал бы...


 
velimir ©   (2006-10-06 23:50) [19]

RASkov, счаз проверить не могу... Может и работает...
Пока я встретил, тока одну не знакомую мне хрень:
Application.ProcessMessages;
Если мне расскажут как она  (Application.ProcessMessages;) действует, то наверное можно будет тему считать закрытой.


 
Percent   (2006-10-06 23:51) [20]

velimir ©   (06.10.06 23:47) [17]
Т.е. Application.ProcessMessages; обнулит счетчик на время обработки?


НЕТ, НЕ ОБНУЛИТ!

RASkov   (06.10.06 23:48) [18]
> [17] velimir ©   (06.10.06 23:47)

Так уже попробывал бы...


Спи спокойно, Сема. Теперь пусть он ворочается... (С) Анекдот


 
RASkov   (2006-10-06 23:52) [21]

> [19] velimir ©   (06.10.06 23:50)

"Проглотит" все сообщения


 
Ketmar ©   (2006-10-06 23:53) [22]

>[17] velimir(c) 6-Oct-2006, 23:47
>Т.е. Application.ProcessMessages; обнулит счетчик на время
>обработки?
бред. не трогай очередь сообщений -- программа будет здоровее.

снять обработчик можно, присвоим OnClick nil. и не забыв присвоить то, что было раньше перед выходом из процедуры. а лучше, всё-таки, кнопочку запретить.


 
Ketmar ©   (2006-10-06 23:53) [23]

>[21] RASkov 6-Oct-2006, 23:52
>"Проглотит" все сообщения
бред.


 
Zeqfreed ©   (2006-10-06 23:53) [24]

> [17] velimir ©   (06.10.06 23:47)


> обнулит счетчик на время обработки?

Какой счетчик? Application.ProcessMessages обработает все сообщения накопившиеся в очереди.


 
velimir ©   (2006-10-06 23:54) [25]

RASkov, спасибо!!! Значит все заработает!!!
А что еще мона при помощи Application.ProcessMessages; сделать?

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


 
RASkov   (2006-10-06 23:56) [26]

> [22] Ketmar ©   (06.10.06 23:53)

procedure TForm2.Button1Click(Sender: TObject);
var N: Integer;
begin
 //if not (Sender as TButton).Enabled then Exit;
 //(Sender as TButton).Enabled:=False;
 (Sender as TButton).OnClick:=nil;
 for N:=0 to 3000 do Caption:=IntToStr(N);
 //Application.ProcessMessages;
 //(Sender as TButton).Enabled:=True;
 (Sender as TButton).OnClick:=Button1Click;
 //ShowMessage("tt"); {TEST}
end;

Если расскоментировать строку Application.ProcessMessages; то работает, а так нет тоже и с запретом.


 
velimir ©   (2006-10-06 23:56) [27]

Zeqfreed, спасибо! Понял как работает... Он обработает все сообщения, а кнопка в этот момент задисеблена и не отреагирует на клики... СПАСИБО!!!


 
Ketmar ©   (2006-10-06 23:58) [28]

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


 
velimir ©   (2006-10-07 00:01) [29]

Ketmar, ну что ты так... Просто привык все контролировать, а тут механизм сообщений... Под дос у меня с прогой проблем не было.... Там все своё... А тут... Вообщем, прощу прощение за ламеризм... Воть.


 
RASkov   (2006-10-07 00:04) [30]

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

Извеняюсь,... это кому?


 
Ketmar ©   (2006-10-07 00:06) [31]

>[29] velimir(c) 7-Oct-2006, 00:01
>Ketmar, ну что ты так...
это не я. это ты упорно не хочешь читать рекомендации от умных людей, а предпочитаешь делать свои выводы, основаные на каких-то "потолочных" знаниях.
ну, зашёл в "начинающим" -- правильно. так послушай, что говорят. для тебя же стараемся. если встретил противоречащие мнения -- переспроси. а лучше попробуй разобраться сам, а потом всё равно переспросить, правильно ли понял (если работает не так, как хотелось). право же, мы не просто стараемся тут забить базу "мастеров" буковками...

>прощу прощение за ламеризм...
да нам-то что? это ты себя наказываешь, а не нас. %-)


 
Ketmar ©   (2006-10-07 00:06) [32]

>[30] RASkov 7-Oct-2006, 00:04
>Извеняюсь,... это кому?
и тебе в том числе. потому что [21] -- это бред, как я уже писал.


 
velimir ©   (2006-10-07 00:08) [33]

Ketmar, я тебя не понял... Т.е. вывод что "Application.ProcessMessages;
обработает все сообщения, а кнопка в этот момент задисеблена и не отреагирует на клики..." Неверен?


 
RASkov   (2006-10-07 00:11) [34]

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

Ну приведи свое решение. [22]? Так приведи пример куском кода.


 
velimir ©   (2006-10-07 00:14) [35]

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


 
Ketmar ©   (2006-10-07 00:14) [36]

>[33] velimir(c) 7-Oct-2006, 00:08
>обработает все сообщения
обработает, а не "обнулит" или "проглотит". разница огромная.

>[34] RASkov 7-Oct-2006, 00:11
>Так приведи пример куском кода.
пора бы запомнить, что код я даю очень редко. %-)


 
Ketmar ©   (2006-10-07 00:16) [37]

>[35] velimir(c) 7-Oct-2006, 00:14
>Если даже до конца не поймешь как работает, то
>хотя бы можно использовать!
с этим -- например, к господину Ф. на форум. мы тут учим головой работать и знания приобретать. а не заниматься тупым копипастом.


 
velimir ©   (2006-10-07 00:21) [38]

Как я понял моя проблема уже решена. За что все огромное спасибо! Честно!

To Ketmar: Расскажи про механизм Сообщений! Я так понял ты в этом дока... Или отошли к толковаму мануалу... А то кормить RTFMами я и сам могу, когда дело косается того в чем я дока...


 
Ketmar ©   (2006-10-07 00:24) [39]

>[38] velimir(c) 7-Oct-2006, 00:21
>To Ketmar: Расскажи про механизм Сообщений!
запросто. как оплачиваешь? в каком объёме? за сколько занятий? или, может, всё-таки будешь сам литературу читать? %-) того же Петзольда, например. он до сих пор актуален. заодно поймёшь, что происходит внутри VCL, и как она добивается от виндов того, чего добивается. %-)

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


 
RASkov   (2006-10-07 00:25) [40]

> [36] Ketmar ©   (07.10.06 00:14)

А если серьезно... то ты это имел ввиду или нет?

procedure TForm2.Button1Click(Sender: TObject);
begin
(Sender as TButton).OnClick := nil;
SendC;
(Sender as TButton).OnClick := Button1Click;
end;

то так не пашет:)


 
RASkov   (2006-10-07 00:26) [41]

> то так не пашет:)

т.е. не отвечает на вопрос...


 
Ketmar ©   (2006-10-07 00:27) [42]

>[40] RASkov 7-Oct-2006, 00:25
>то так не пашет:)
естественно. потому что Application.ProcessMessages() забывать тоже не надо. это просто альтернатива "Enabled", не более. причём кривая.

я просто пояснял, что есть "снять обработчик".


 
velimir ©   (2006-10-07 00:27) [43]

To Ketmar: Спасибо за наводку на автора, а то у меня тока какой-то В. Понамарев...

А насчет отношения к жизни взгляды у нас с тобой совпадают ;-)


 
Ketmar ©   (2006-10-07 00:29) [44]

>[43] velimir(c) 7-Oct-2006, 00:27
>Спасибо за наводку на автора
можешь завести отдельную тему с вопросом "что бы почитать о...". насоветуют кучу хорошей литературы. %-) советовать, что читать -- это мы любим. %-)


 
velimir ©   (2006-10-07 00:31) [45]

To Ketmar: Можешь начинать советовать, я записываю ;)


 
velimir ©   (2006-10-07 00:32) [46]

To Ketmar: И лучше не только авторов, но и названия книг!!! Заранее благодарен!!!


 
Ketmar ©   (2006-10-07 00:34) [47]

пока эту осиль. а потом, как вопросы появятся, спрашивай дальше. %-)

главное -- никогда-ни-за-что не читай флёнова и архангельского. %-)


 
RASkov   (2006-10-07 00:35) [48]

> [42] Ketmar ©   (07.10.06 00:27)

Ну в итоге вот то что надо автору:

procedure TForm2.Button1Click(Sender: TObject);
begin
 (Sender as TButton).Enabled := False;
 SendC;
 Application.ProcessMessages;
 (Sender as TButton).Enabled := True;
end;

По твоему мнению опять что-то не так?


 
velimir ©   (2006-10-07 00:40) [49]

ТО RASkov: Спасибо! Я уже понял как оно будет работать!!!

ТО Ketmar: Уже скачиваю "Программирование для Microsoft Windows на С" - Чарльз Петзольд. Всего-то 80Мб... Или ты советовал другую книгу? Можешь название точное дать?

PS. Пономарева тоже читать не стоит %-)


 
RASkov   (2006-10-07 00:45) [50]

Мое подозрение - от того что происходит в SendC - что и этот метод может не помочь. Например в SendC создается поток и выполняется какоето время...
Ну мож я и обманываюсь:)


 
Ketmar ©   (2006-10-07 00:48) [51]

>[48] RASkov 7-Oct-2006, 00:35
>По твоему мнению опять что-то не так?
есть мелочи, в принципе. но работать будет. %-)

>[49] velimir(c) 7-Oct-2006, 00:40
>ТО Ketmar: Уже скачиваю "Программирование для Microsoft
>Windows на С" - Чарльз Петзольд.
кажись, оно. не помню уже -- давно было. %-)


 
velimir ©   (2006-10-07 00:50) [52]

RASkov, не обманываешься... Но все равно я счаз проверить не смогу...
Но я думаю должно сработать!


 
Германн ©   (2006-10-07 00:52) [53]

Ненавижу, когда процедуры общения с внешним кстройством запихивают в обработчик нажатия кнопки. Я бы предпочел иной вариант:


 procedure WMSendCommandToDevice(var Mes: TMessage); message WM_SendCommandToDevice;

 procedure TfmMain.btnOneClick (Sender: TObject)
 begin
    btnOne.Enabled := false;
    PostMessage(Handle,WM_SendCommandToDevice,0,0);
 end;

 procedure WMSendCommandToDevice(var Mes: TMessage);
 begin
//вызываем процедуру отсылки на девайс
    SendC;
//Ждем 1 секунду пока отработает девайс
    sleep(1000);
    btnOne.Enabled := true;
 end;


 
RASkov   (2006-10-07 00:53) [54]

> [51] Ketmar ©   (07.10.06 00:48)
> >[48] RASkov 7-Oct-2006, 00:35
> >По твоему мнению опять что-то не так?
> есть мелочи, в принципе. но работать будет. %-)

Не сочти за "докапывание" хотелось бы узнать про "мелочи", чесное слово. Без смеха и шуток.


 
Ketmar ©   (2006-10-07 00:53) [55]

>[53] Германн(c) 7-Oct-2006, 00:52
>Я бы предпочел иной вариант
не пугай новичков. %-))


 
Ketmar ©   (2006-10-07 00:55) [56]

>[54] RASkov 7-Oct-2006, 00:53
>Не сочти за "докапывание" хотелось бы узнать про "мелочи"
собственно, мелочь одна, она де главная: UI заморозится. а потом скопом выполнит всё, что юзер успел накликать. %-)


 
velimir ©   (2006-10-07 00:57) [57]

ТО Германн: А чем плохо если, вся прога посвещена работе с внешним девайсом и обращения к нему идет прямо с обработки события OnClick?


 
RASkov   (2006-10-07 00:58) [58]

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

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


 
Ketmar ©   (2006-10-07 00:59) [59]

>[58] RASkov 7-Oct-2006, 00:58
в этом конкретном -- избавлен от проблем с Application.ProcessMessages(), как минимум. да и всяко изящней. а вдруг захочется ещё пункт меню привинтить? и хоткей? и по таймеру?


 
RASkov   (2006-10-07 01:01) [60]

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

Понял. Ну это как реализована SendC есче. И это по всей видимости ответ на мой вопрос Германну. Хотя...


 
RASkov   (2006-10-07 01:03) [61]

> [59] Ketmar ©   (07.10.06 00:59)

Согласен. Все понятно. Спасибо.


 
velimir ©   (2006-10-07 01:05) [62]

Я все же сделаю по [48], про очень много кнопок, который много разных функций юзают... И у меня все работает кроме одного пунктика, что от перекликов не защищен... Но и [53] я тоже буду иметь ввиду на будущее.


 
Германн ©   (2006-10-07 01:09) [63]


> RASkov   (07.10.06 01:01) [60]
>
> > [56] Ketmar ©   (07.10.06 00:55)
>
> Понял. Ну это как реализована SendC есче. И это по всей
> видимости ответ на мой вопрос Германну. Хотя...

Мой вариант не зависит никак от реализации SendC. Соль именно в Post. А вообще использование PostMessage в обработчиках очень полезно и в ряде других случаев.


 
Palladin ©   (2006-10-07 01:10) [64]

хем (дубль два, долго терпел :), но надеялся что [39] возымеет действие... отнюдь... ), наглядность использования tag, для тех кто недогнал что это просто аттрибут класса и никаких ожиданий сообщений системы не требует для догона что он уже не тот

 TForm1 = class(TForm)
   Button1: TsButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

...

Type
TMyThread=Class(TThread)
 Protected
  Procedure Execute; override;
End;

Procedure TMyThread.Execute;
Begin
Sleep(10000);
End;

procedure TForm1.Button1Click(Sender: TObject);
begin
If Button1.Tag=0 Then
 Begin
  Button1.Tag:=1;
  With TMyThread.Create(False) Do
   Begin
    FreeOnTerminate:=True;
    While not Terminated Do
     Begin
      Sleep(100);
      Application.ProcessMessages;
     End;
   End;
  Button1.Tag:=0;
 End Else ShowMessage("Фигушки, есче в процессе!");
end;


 
RASkov   (2006-10-07 01:11) [65]

А там в [53], по идее, в параметрах PostMessage(Handle, WM_SendCommandToDevice, 0, 0); в место нулей можно передавать какого Sendera заЕнаблить.


 
Ketmar ©   (2006-10-07 01:15) [66]

>[64] Palladin(c) 7-Oct-2006, 01:10
а зачем тут тэг вообще? запретить кнопку нафиг, и все проблемы. %-)


 
Германн ©   (2006-10-07 01:15) [67]


> RASkov   (07.10.06 01:11) [65]
>
> А там в [53], по идее, в параметрах PostMessage(Handle,
> WM_SendCommandToDevice, 0, 0); в место нулей можно передавать
> какого Sendera заЕнаблить.

Конечно можно.


 
velimir ©   (2006-10-07 01:15) [68]

ТО Palladin: Не вижу принципиальной разницы в использовании tag или enabled. Ключевая штучка Application.ProcessMessages;


 
Ketmar ©   (2006-10-07 01:16) [69]

>[64] Palladin(c) 7-Oct-2006, 01:10
ну и, коли уж пишешь так длинно -- ну не ленись ты делать try ... finally. %-)


 
Германн ©   (2006-10-07 01:17) [70]


> velimir ©   (07.10.06 01:15) [68]
>
> ТО Palladin: Не вижу принципиальной разницы в использовании
> tag или enabled.

Надень очки :-) То бишь почитай книжки. Разница именно принципиальная! Но я всё равно против.


 
Ketmar ©   (2006-10-07 01:17) [71]

>[68] velimir(c) 7-Oct-2006, 01:15
>Не вижу принципиальной разницы
вообще-то разница есть -- для юзера. но это дело вкуса. просто некоторые особо одарённые юзеры могут перепугаться запрещённой кнопки -- "как так? работает только один раз?"

правда, другие могут раздражаться от окошка "занят я"... %-)


 
Palladin ©   (2006-10-07 01:20) [72]


> [69] Ketmar ©

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


> [68] velimir ©

application.processmessages был для чтоб
1. приложение не "зависло"
2. сообщение showmessage сработало для наглядности
оно и без него (цикла while с sleep(100)) так же отработает


 
velimir ©   (2006-10-07 01:21) [73]

ТО Ketmar: Как раз необходимость возникла именно из-за "одоренности" юзеров %-( %-)


 
RASkov   (2006-10-07 01:24) [74]

> [72] Palladin ©   (07.10.06 01:20)

В примере [64] строчка
While not Terminated Do
помоему к Application относится а не к потоку...
както страно выполняется (я откомпилировал).


 
Ketmar ©   (2006-10-07 01:24) [75]

>[72] Palladin(c) 7-Oct-2006, 01:20
>равно больше одного потока не запустится...
а вдруг что-нибудь таки упадёт? "начинающим" же, как ты верно заметил... %-)


 
Ketmar ©   (2006-10-07 01:25) [76]

>[74] RASkov 7-Oct-2006, 01:24
with видел? %-)


 
RASkov   (2006-10-07 01:25) [77]

> > [72] Palladin ©   (07.10.06 01:20)

Но суть не в этом и... ясна.:)


 
RASkov   (2006-10-07 01:26) [78]

> [76] Ketmar ©   (07.10.06 01:25)

Видел и поэтому написал
> помоему к Application относится а не к потоку...

так как откомпилил и странное поведение при нажатии кнопки...


 
Ketmar ©   (2006-10-07 01:26) [79]

кстати, да. косяк-с. FreeOnTerminate? и проверка свойства у объекта, который порушили нафиг? %-)


 
RASkov   (2006-10-07 01:26) [80]

> > помоему к Application относится а не к потоку...


 
Palladin ©   (2006-10-07 01:31) [81]

ну раз столько претезий :) возвращаемся к [7]


 
Ketmar ©   (2006-10-07 01:33) [82]

>[81] Palladin(c) 7-Oct-2006, 01:31
>ну раз столько претезий :) возвращаемся к [7]
а-а-а! поймали, поймали! %-)


 
Palladin ©   (2006-10-07 01:34) [83]

ага... и жестоко избили :)


 
Ketmar ©   (2006-10-07 01:35) [84]

>[83] Palladin(c) 7-Oct-2006, 01:34
>ага... и жестоко избили :)
а потому что не надо, аднака, на ночь глядя код давать. вообще не надо код давать -- так проще ошибок не делать. %-)


 
RASkov   (2006-10-07 01:35) [85]

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

Неа тоже не работает... т.е. работает не так как надо:)


 
Palladin ©   (2006-10-07 01:36) [86]

хм, а как надо?


 
Ketmar ©   (2006-10-07 01:36) [87]

>[86] Palladin(c) 7-Oct-2006, 01:36
>хм, а как надо?
а как я -- умно критиковать. без кода, заметь. %-)


 
RASkov   (2006-10-07 01:37) [88]

> [87] Ketmar ©   (07.10.06 01:36)

Форум то воощето не для критики....


 
velimir ©   (2006-10-07 01:39) [89]

Все таки RASkov - рулит!!! И пример дал работающий и болото расшевелил ;)

PS. Спасибо всем и спокойной ночи!


 
Ketmar ©   (2006-10-07 01:43) [90]

>[88] RASkov 7-Oct-2006, 01:37
>Форум то воощето не для критики....
это ж кто тебе так наврал? %-)


 
Palladin ©   (2006-10-07 01:44) [91]


> [88] RASkov  

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


> [87] Ketmar ©

не умею я так... :) чуть чуть да хочется дать пинок...


 
RASkov   (2006-10-07 01:45) [92]

> [90] Ketmar ©   (07.10.06 01:43)

Ну ладно, уговорил... это кому как. :)


 
RASkov   (2006-10-07 01:49) [93]

> [91] Palladin ©   (07.10.06 01:44)

Ну да, я согласен, должен быть такой человек...
Что по мне... т.е. как я воспринимаю "пример кодом" - начинаю копать в эту сторону и уже справку направленно читать;)...Ладно, Автор спать пошел... пора тоже баиньки.


 
Ketmar ©   (2006-10-07 01:56) [94]

>[91] Palladin(c) 7-Oct-2006, 01:44
>первый пинок для применения мозга
чисто и последний. дальше как раз метла идёт. %-) метла -- это значит, что я отчаялся. %-)


 
Ketmar ©   (2006-10-07 01:57) [95]

"чисто" = "часто". %-)


 
Германн ©   (2006-10-07 02:01) [96]


> Palladin ©   (07.10.06 01:44) [91]
>
>
> > [88] RASkov  
>
> критика кетмера, на этом форуме, первый пинок для применения
> мозга, бо от кетмера не бывает критики без посылок, а все
> что про метлу это нужно воспринимать как книжечки для начинающих
> для чтения сказок про паскаль и иже с ним, и главное решение
> задачек, которые идут с этими книжечками

Истину глаголешь. Но стоит при этом упомянуть и первоисточники! АП и ИШ. Если  про метлу первым упомянул кто-иной, тогда и его в "первоисточники".


 
Ketmar ©   (2006-10-07 02:03) [97]

>[96] Германн(c) 7-Oct-2006, 02:01
>первоисточники! АП и ИШ.
это первоисточники прежде всего не метёлок, а многих знаний Кэтмара. %-) как и ещё куча других участников форума, перечислять которых -- трафика не хватит. %-)


 
Германн ©   (2006-10-07 02:11) [98]


> Ketmar ©   (07.10.06 02:03) [97]
>
> >[96] Германн(c) 7-Oct-2006, 02:01
> >первоисточники! АП и ИШ.
> это первоисточники прежде всего не метёлок, а многих знаний
> Кэтмара. %-) как и ещё куча других участников форума, перечислять
> которых -- трафика не хватит. %-)
>

И я тоже в их числе. Но я имел в виду прежде всего стиль ответов. :-)


 
Palladin ©   (2006-10-07 02:19) [99]

ха :)
Общий стиль ответов:

Кетмар: метла, штука полезная и приносит пользу обществу
Игорь: LMD
АП: данные базе данных они далеко не такие как вы думаете...
ЮЗ: а кто сказал? А вот если я каааак....
Palladin: Да ты что?! С ума сойти...
Джо: С точки зрения банальной эрудиции...

все енто имхо :)


 
Германн ©   (2006-10-07 02:34) [100]


> Palladin ©   (07.10.06 02:19) [99]

Позволь добавить:
АП, Кэтмар: Можно (Есть) - при ответах на вопросы, начинающиеся с этих слов.


 
Ketmar ©   (2006-10-07 02:40) [101]

я бы сказал:
ЮЗ: да? а вот посмотрите... почему? <тут лекция на три страницы> %-)


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


> Ketmar ©   (07.10.06 02:40) [101]
>
> я бы сказал:
> ЮЗ: да? а вот посмотрите... почему? <тут лекция на три страницы>
> %-)
>

Как давно это было!
Точнее, "как давно этого не было" :-(
А ведь было такое время!


 
Palladin ©   (2006-10-07 02:54) [103]


> [102] Германн ©

Угу...
было время...
и у ИШ было время...
и у АП были внятные ответы :)
у Юрия всегда есть время, но теперь редко...

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


 
Джо ©   (2006-10-07 02:54) [104]

> [99] Palladin ©   (07.10.06 02:19)
> ха :)
> Общий стиль ответов:
>
> Кетмар: метла, штука полезная и приносит пользу обществу
> Игорь: LMD
> АП: данные базе данных они далеко не такие как вы думаете...
> ЮЗ: а кто сказал? А вот если я каааак....
> Palladin: Да ты что?! С ума сойти...
> Джо: С точки зрения банальной эрудиции...

В эту колоритную картину осталось привнести несколько ярких пятен, например:
begin..end: Ой.
:)

П.С. Неужто я такой из себя мудреный-мудреный? :D


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

>[104] Джо(c) 7-Oct-2006, 02:54
>В эту колоритную картину осталось привнести несколько
>ярких пятен:
DiamondShark: (WebBrowser1.Dodument as I<Кэтмарзабылкакойнтерфейс>).xxx

%-)


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


> Palladin ©   (07.10.06 02:54) [103]
>
...
> просто замучило всех, много ответов на множество вопросов
> есть в нативном виде в поисковиках...
>

Тем более, что часто незачем лезть в поисковики, поскольку многое есть в Delphi\Demos?
Но проще задать вопрос в форуме :-(


 
Ketmar ©   (2006-10-07 03:13) [107]

>[106] Германн(c) 7-Oct-2006, 03:11
>многое есть в Delphi\Demos?
а чего нет там, то на 90% есть в справке. %-)


 
Eraser ©   (2006-10-07 03:18) [108]

procedure TfmMain.btnOneClick (Sender: TObject)
begin
 SendC;
 TButton(Sender).Visible := False;
end;


 
Ketmar ©   (2006-10-07 03:19) [109]

>[108] Eraser(c) 7-Oct-2006, 03:18
во-первых: садюга.
во-вторых: кнопочка-то, как я понял, многоразовой должна быть. %-)


 
Ketmar ©   (2006-10-07 03:20) [110]

и в третьих: твой ответ уже оффтопик. %-)


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


> Ketmar ©   (07.10.06 03:13) [107]
>
> >[106] Германн(c) 7-Oct-2006, 03:11
> >многое есть в Delphi\Demos?
> а чего нет там, то на 90% есть в справке. %-)
>

Я вчера ночью уже высказал сожаление, что в Demos нет примеров грамотной работы с Сом-портом! Это, имхо, влезло в те 10% процентов. :-(


 
Джо ©   (2006-10-07 03:26) [112]

> procedure TfmMain.btnOneClick (Sender: TObject)
> begin
> SendC;
> TButton(Sender).Visible := False;
> end;

Полумера. Следует так:

procedure TfmMain.btnOneClick (Sender: TObject)
begin
SendC;
Sender).Free;
end;

:)


 
Ketmar ©   (2006-10-07 03:32) [113]

>[112] Джо(c) 7-Oct-2006, 03:26
>Полумера.
не мелочись. ExitProcess(0) -- и все дела.


 
Джо ©   (2006-10-07 03:33) [114]

> [113] Ketmar ©   (07.10.06 03:32)
> >[112] Джо(c) 7-Oct-2006, 03:26
> >Полумера.
> не мелочись. ExitProcess(0) -- и все дела.

Ты, наверное, хотел написать ExitWindowsEx? :)


 
Eraser ©   (2006-10-07 03:33) [115]

> [112] Джо ©   (07.10.06 03:26)

тогда уж так :))
procedure TForm1.Button1Click(Sender: TObject);
var
 obj: TObject;
begin
 obj := TButton(Sender).Parent;
 while not (obj is TFormClass) do
   obj := TWinControl(obj).Parent;
 TForm(obj).Close;
end;


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


> Джо ©   (07.10.06 03:26) [112]
>
> > procedure TfmMain.btnOneClick (Sender: TObject)
> > begin
> > SendC;
> > TButton(Sender).Visible := False;
> > end;
>
> Полумера. Следует так:
>
> procedure TfmMain.btnOneClick (Sender: TObject)
> begin
> SendC;
> Sender).Free;
> end;
> :)
>

АП в квадрате!


 
Ketmar ©   (2006-10-07 03:36) [117]

>[114] Джо(c) 7-Oct-2006, 03:33
>Ты, наверное, хотел написать ExitWindowsEx? :)
а, ну да. с EWX_FORCE. но тут ещё привилегии надо получать... %-(


 
Джо ©   (2006-10-07 03:36) [118]

> [115] Eraser ©   (07.10.06 03:33)
> > [112] Джо ©   (07.10.06 03:26)
>
> тогда уж так :))

Тут уже пошла в ход тяжелая артиллерия, но мы с Кетмаром тебя-таки опередили ;) Остался только последний вариант — вызов взвода автоматчиков по расписанию :)


 
Ketmar ©   (2006-10-07 03:40) [119]

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


 
Джо ©   (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(); :-)

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

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


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

PS.

Ответы "Почитай книги" и "Переустанови Windows" знают все и вряд ли кто-то в них нуждается. Особенно в конференции для начинающих.


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


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


Кто-то помогает, кто-то рисуется.
Однако все буковки пишут одинаковые.


 
Virgo_Style ©   (2006-10-08 17:12) [163]

Пусик ©   (08.10.06 15:22) [156]
если в ветке есть правильная?


А если есть, то что вас не устраивает?


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


> А если есть, то что вас не устраивает?


1. Читайте ветку не через пост.
2. А что Вас не устраивает?


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


> Virgo_Style ©   (08.10.06 17:12) [163]


Кстати, аналогичный [153] вопрос Вам.


 
Virgo_Style ©   (2006-10-08 17:27) [166]

Пусик ©   (08.10.06 17:18) [164]
А что Вас не устраивает?


Меня не устраивает, что кто-то пытается учить меня (в том числе) "как жить".

Соответственно ответ на вопрос, аналогичный [153] - противодействие процессу обучения.


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


> Меня не устраивает, что кто-то пытается учить меня (в том
> числе) "как жить".Соответственно ответ на вопрос, аналогичный
> [153] - противодействие процессу обучения.


А Вас тут близко не стояло.
А поучиться не мешало бы.


 
Virgo_Style ©   (2006-10-08 19:49) [168]

Пусик ©   (08.10.06 17:30) [167]
Стояло. Я, знаете, тоже иногда отвечаю.
Я учусь. Но вот чему учиться - решаю сам.

За сим оффтоп здесь завязываю. Если есть желание продолжить диспут - милости прошу в почту. %-)


 
Пусик ©   (2006-10-08 21:40) [169]


> Стояло. Я, знаете, тоже иногда отвечаю.


В этой ветке?


> Я учусь. Но вот чему учиться - решаю сам.


Правильное решение.


> За сим оффтоп здесь завязываю. Если есть желание продолжить
> диспут - милости прошу в почту. %-)


Да вообще-то не о чем дискутировать.


 
Percent   (2006-10-08 23:09) [170]

Скучно...


 
Ketmar ©   (2006-10-08 23:59) [171]

>[170] Percent 8-Oct-2006, 23:09
>Скучно...
угу. донна повторяется...


 
Германн ©   (2006-10-09 00:37) [172]


> Ketmar ©   (08.10.06 23:59) [171]
>
> >[170] Percent 8-Oct-2006, 23:09
> >Скучно...
> угу. донна повторяется...

Ну не получается у неё "нажать на кнопку" только один раз. :-)

Или она решила устроить эксперимент на тему:
unknown ©   (07.10.06 04:05) [126]

Интересно, эта ветка перекочует в потрепаться?


 
Пусик ©   (2006-10-09 01:05) [173]

Хорошая вещь - стадный инстинкт.


 
Джо ©   (2006-10-09 01:14) [174]

Хорошая вещь всех скопом обкакать, а потом удивляться, что тебе отвечают.


 
Пусик ©   (2006-10-09 01:15) [175]


> Хорошая вещь всех скопом обкакать, а потом удивляться, что
> тебе отвечают.


Ну не всех... Пальцем показывать не буду - неприлично...


 
Германн ©   (2006-10-09 01:20) [176]


> Пусик ©   (09.10.06 01:05) [173]
>
> Хорошая вещь - стадный инстинкт.
>

Не. Это не "стадный", а "стайный" инстинкт! А "стайный" инстинкт == благородный инстинкт.
И ещё. Ты бы подумала бы про себя, грешную. Влезла в ветку, когда уже все всем были довольны. Автор получил, что хотел, за что выразил признательность. И тут ты с претензиями! А когда тебе намекнули на на некую неуместность твоего вмешательства, имхо, у тебя сработал некий другой инстинкт. "Бараний"! Так теперь и будешь долбить в ворота, которых нет и впомине?


 
Шпиён   (2006-10-09 01:49) [177]


> Германн ©   (09.10.06 01:20) [176]



> Так теперь и будешь долбить в ворота, которых нет и впомине

IMHO, "ворота" таки есть. -(
Только вот долбить в них таким способом смысла не вижу...


 
Германн ©   (2006-10-09 01:54) [178]


> Шпиён   (09.10.06 01:49) [177]

Любопытства ради. Какие есть "ворота", которые ты видишь?


 
Германн ©   (2006-10-09 01:56) [179]

Не. Любопытство моё угасло. Ник "Шпиён" не зарегистрирован. :-(


 
Шпиён   (2006-10-09 02:00) [180]


> Ник "Шпиён" не зарегистрирован

<Offtopic>
И не будет. Из принципа. Я в этом форуме под своим ником больше не появлюсь.  А Вас я знал еще под ником SerGa.
</Offtopic>


 
Германн ©   (2006-10-09 02:12) [181]


> Шпиён   (09.10.06 02:00) [180]
>
>
> > Ник "Шпиён" не зарегистрирован
>
> <Offtopic>
> И не будет. Из принципа. Я в этом форуме под своим ником
> больше не появлюсь.  А Вас я знал еще под ником SerGa.
> </Offtopic>
>

О сколько  Вам открытий чудных, готовит просвещенья дух?
Но я рад, что меня ещё кто-нибудь помнит "не как Германн"! А ведь этот ник - самый первый мой! И он очень старый! Если ты из тех времён, то зарегистрируй свой ник! Что этому мешает?


 
Шпиён   (2006-10-09 02:14) [182]


> Германн ©   (09.10.06 02:12) [181]

Дурной принцип, наверное... но тем не менее -)


 
Германн ©   (2006-10-09 02:44) [183]

Не. Ну а как прикажешь с тобой разговаривать? Как я могу общаться с "Шпиён", если я не могу быть уверен, что это именно ты?


 
Шпиён   (2006-10-09 03:01) [184]


> Германн ©   (09.10.06 02:44) [183]

Почти уговорили... может попробую как-нибудь (кем-нибудь) вернуться -)
Кстати, одни из "ворот"... когда становится более важным не что сказано, а кем сказано. Иногда это огорчает %)
Adder aka Шпиён
ps Если увидите еще хоть один пост от "Шпиён" - это уже не я


 
Германн ©   (2006-10-09 03:15) [185]

2 Шпиён   (09.10.06 03:01) [184]
"ps Если увидите еще хоть один пост от "Шпиён" - это уже не я"
Ну уж если пошла такая пьянка, Марина, ник "тестировшица" Ваш?


 
Шпиён   (2006-10-09 03:17) [186]


> Германн ©   (09.10.06 03:15) [185]

Мой


 
Adder ©   (2006-10-09 03:19) [187]

Встречный вопрос. Ник "Тестировщица" уведен у Вас? -))


 
Германн ©   (2006-10-09 03:29) [188]


> Adder ©   (09.10.06 03:19) [187]
>
> Встречный вопрос. Ник "Тестировщица" уведен у Вас? -))
>

Понял. Но не совсем:-)
У меня "увели" несколько ник"ов. В основном Саша Панов, имхо. Я не утверждаю, но подозреваю. Но все они были "незарегистрированными", так что претензий нет никаких.


 
Adder ©   (2006-10-09 03:33) [189]


> Германн ©   (09.10.06 03:15) [185]

Вот теперь проблема - новую "маску" придумывать... Шпиёна остается только тихо похоронить. Пойду спать с горя -)))


 
Германн ©   (2006-10-09 03:44) [190]

Не. Ну у меня есть очень красивое предложение по поводу новой маски.


 
RASkov   (2006-10-09 14:45) [191]

Блин, не будь этой "долбаной" ветки - Шпиёна бы не рассекретили:)
Пора сдесь крест поставить. Все что можно и неможно решили уже.


 
Пусик ©   (2006-10-09 20:47) [192]


> Пора сдесь крест поставить. Все что можно и неможно решили
> уже.


Думаешь?


 
Джо ©   (2006-10-09 20:48) [193]

Удалено модератором
Примечание: Не стоит обсуждать третьих лиц


 
Kerk ©   (2006-10-09 21:03) [194]

> [193] Джо ©   (09.10.06 20:48)

Я ему говорил, он не верит :)


 
Джо ©   (2006-10-09 21:09) [195]

> [194] Kerk ©   (09.10.06 21:03)
> > [193] Джо ©   (09.10.06 20:48)
>
> Я ему говорил, он не верит :)

Ему, ей? Ничего стабильного уже не осталось в этой жизни :)


 
Ketmar ©   (2006-10-09 21:16) [196]

а в "трепологию" всё-таки переехало. %-)


 
DiamondShark ©   (2006-10-09 21:27) [197]

Удалено модератором
Примечание: Не стоит обсуждать третьих лиц


 
Ketmar ©   (2006-10-09 21:29) [198]

Удалено модератором
Примечание: Не стоит обсуждать третьих лиц


 
Джо ©   (2006-10-09 21:33) [199]

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


 
Ketmar ©   (2006-10-09 21:34) [200]

>[199] Джо(c) 9-Oct-2006, 21:33
DooM спасёт ОДР. %-)


 
Игорь Шевченко ©   (2006-10-09 21:35) [201]

Джо ©   (09.10.06 21:33) [199]


> У меня сейчас даже кота дома нет, чтобы его пнуть после
> тяжелого дня


Заведи медведя, пни его, получишь массу положительных эмоций :)


 
Джо ©   (2006-10-09 21:41) [202]

> [200] Ketmar ©   (09.10.06 21:34)
> >[199] Джо(c) 9-Oct-2006, 21:33
> DooM спасёт ОДР. %-)

Да вот даже игрушки дома нету никакой. Один только Oblivion, но это совершенно не то... А пока только одна игра, Хроники Пикирующего Бомбардировщика: http://forum.ihome.net.ua/index.php?showtopic=13072&hl=


> [201] Игорь Шевченко ©   (09.10.06 21:35)
> Заведи медведя, пни его, получишь массу положительных эмоций
> :)

Думал над подобным, аллигатора предлагали. Жрать, зараза, много требует :)


 
RASkov   (2006-10-09 21:47) [203]

> Думал над подобным, аллигатора предлагали. Жрать, зараза,
> много требует :)

Я думаю он один раз поест и тебя это волновать больше не будет:) Шутка.


 
Пусик ©   (2006-10-10 09:49) [204]


> Джо ©   (09.10.06 21:33) [199]
> Черт, как же плохо всё... У меня сейчас даже кота дома нет,
>  чтобы его пнуть после тяжелого дня. Хоть заводи бота и
> под ним кусайся. Жаль, я ленивый. И котов люблю.


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


 
Игорь Шевченко ©   (2006-10-10 10:41) [205]

Пусик ©   (10.10.06 09:49) [204]


> некоторые почти исключительно для этого здесь появляются.


Ну тебе-то какое дело до этого ? :)
Просто интересно (с)


 
Пусик ©   (2006-10-10 10:52) [206]


> Ну тебе-то какое дело до этого ? :)


> Просто интересно (с)


Ну так и мне вот интересно-)


 
Пусик ©   (2006-10-10 10:53) [207]

Да и не люблю, когда пинают озверевшей толпой.
Как-то это выглядит противно.


 
Игорь Шевченко ©   (2006-10-10 10:55) [208]

Пусик ©   (10.10.06 10:53) [207]


> Да и не люблю, когда пинают озверевшей толпой.
> Как-то это выглядит противно.


Ну не ущемляй свои эстетические чувства, что я еще могу посоветовать ?


 
Пусик ©   (2006-10-10 10:56) [209]


> Ну не ущемляй свои эстетические чувства, что я еще могу
> посоветовать ?


Не всегда удается мимо пройти.


 
TStas ©   (2006-10-10 11:05) [210]

Может, я сабж не понял, а нельзя разьве в обработчике написать If sender is TButton then (Sender As TButton).Enabled := False? И все.


 
RASkov   (2006-10-10 15:37) [211]

> [210] TStas ©   (10.10.06 11:05)

При длительном выполнении SendC кнопка будет не доступна но сообщения от Windы принимать будет и после (в конце обработчика будет необходимо сделать Enablrd:=True) кнопка опять доступна и отработала новый клик:)


 
Nic ©   (2006-10-10 16:35) [212]

Не представляю, чего тут на 200 постов расписали, но вот рецепт:

// обработчик нажатия
// ....
Button1.Enabled := False;


 
RASkov   (2006-10-10 17:26) [213]

> [212] Nic ©   (10.10.06 16:35)

:)))
Попробуй вот это:

procedure TForm1.Button1Click(Sender: TObject);
var N: Integer;
begin
if not (Sender as TButton).Enabled then Exit;
(Sender as TButton).Enabled:=False;
for N:=0 to 3000 do Caption:=IntToStr(N);
//Application.ProcessMessages;
(Sender as TButton).Enabled:=True;
end;


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


 
Palladin ©   (2006-10-11 21:11) [214]

Не представляю, что тут на 213 постов расписали, но вот рецепт попробуй:

// обработчик нажатия
// ....
Button1.Enabled := False;


 
Джо ©   (2006-10-11 21:14) [215]

> [214] Palladin ©   (11.10.06 21:11)
> Не представляю, что тут на 213 постов расписали, но вот
> рецепт попробуй:

Примерно раз в 50 постов повторяется твой код. С вариациями :)


 
Palladin ©   (2006-10-11 21:21) [216]

это я стебаюсь над 212 :)


 
Джо ©   (2006-10-11 21:26) [217]

> [216] Palladin ©   (11.10.06 21:21)
> это я стебаюсь над 212 :)

Теперь уже разглядел :) Тут, пока ветку читаешь — сплошное дежавю. Только ругань и разнообразивает это дело как-то :)


 
Nic ©   (2006-10-11 22:36) [218]

Palladin ©   (11.10.06 21:21) [216]
Я же написал, что ветку в 200 с хвостом постов не читал. Времени нет. Не надо стебаться над 212 ;)


 
109623   (2006-10-11 23:01) [219]

мде ппц... море постов из-за одной кнопки =))) выложите кто-нибудь нормальный рабочий код!


 
Nic ©   (2006-10-11 23:02) [220]


> 109623   (11.10.06 23:01) [219]

А чем пост 212 не устраивает?


 
MeF Dei Corvi ©   (2006-10-11 23:10) [221]


> А чем пост 212 не устраивает?

Протесть его :) Или хотя бы первый несколько постов прочитай.


 
Ketmar ©   (2006-10-12 15:28) [222]

мда. "Абрам, ты бы хоть лотерейный билет для начала купил!" (ц)
это к [219]


 
ANB ©   (2006-10-12 15:34) [223]

try
 btnOne.Enabled := False;
 Application.ProcessMessages;
 .. . Тута долгая и нудная работа
finally
 btnOne.Enabled := True;
end;


 
Ketmar ©   (2006-10-12 16:56) [224]

>[223]
БАЯН! %-)


 
RASkov   (2006-10-12 19:30) [225]

Козалось бы, до ужоса простенький вопрос.... А сколько идей:) А проверить прежде чем писать?


 
RASkov   (2006-10-12 19:52) [226]

> [224] Ketmar ©   (12.10.06 16:56)

Накручиваешь?:)))



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

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

Наверх




Память: 1.06 MB
Время: 0.058 c
2-1161099536
wewill
2006-10-17 19:38
2006.11.05
Проверка числового значения


2-1161184107
Tbegin
2006-10-18 19:08
2006.11.05
моя первая прога


15-1161330030
Курдль
2006-10-20 11:40
2006.11.05
К музыкальным темам. Прошу поделиться опытом прослушивания FM.


2-1161328654
Автоматчик
2006-10-20 11:17
2006.11.05
Помогите написать проаграмму для стрелки барометра.


2-1161145215
ДьяволСД
2006-10-18 08:20
2006.11.05
gdiPlus.dll





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский