Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.10.06;
Скачать: CL | DM;

Вниз

VCL построена на "сигналах-слотах"?   Найти похожие ветки 

 
О-Сознание   (2013-04-25 23:11) [0]

Отправляет через BroadCast все сообщения?

http://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D0%B3%D0%BD%D0%B0%D0%BB%D1%8B_%D0%B8_%D1%81%D0%BB%D0%BE%D1%82%D1%8B


 
О-Сознание   (2013-04-25 23:12) [1]

* Всем.


 
Игорь Шевченко ©   (2013-04-25 23:16) [2]

Нет


 
clickmaker ©   (2013-04-25 23:17) [3]

причем тут BroadCast?


 
О-Сознание   (2013-04-25 23:21) [4]

Там сказано:


Концепция заключается в том, что компонент (часто виджет) может посылать сигналы, содержащие информацию о событии (например: был выделен текст «слово», была открыта вторая вкладка). В свою очередь другие компоненты могут принимать эти сигналы посредством специальных функций — слотов.


К примеру TSpeedButton посылает всем событие,
в случае, когда он работает в паре. Т.е. нажат может быть только 1.


procedure TSpeedButton.UpdateExclusive;
var
 Msg: TMessage;
begin
 if (FGroupIndex <> 0) and (Parent <> nil) then
 begin
   Msg.Msg := CM_BUTTONPRESSED;
   Msg.WParam := FGroupIndex;
   Msg.LParam := Longint(Self);
   Msg.Result := 0;
   Parent.Broadcast(Msg);
 end;
end;



 
О-Сознание   (2013-04-25 23:23) [5]

Сигнал:                            CM_BUTTONPRESSED;
Информация о событии: В Msg.
Слот:                                message CM_BUTTONPRESSED;

?


 
icelex ©   (2013-04-25 23:36) [6]

это ж не кьют


 
clickmaker ©   (2013-04-25 23:57) [7]

> [0] О-Сознание   (25.04.13 23:11)

а чего тебя это так возбудило? Сигнал-слот всего лишь другое название для Сообщение-обработчик


 
Дмитрий С ©   (2013-04-26 00:05) [8]

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


 
O'ShinW ©   (2013-04-26 00:06) [9]

не
совсем не то
тут есть событие и на него можно подписаться. Не подписался - не получил ничего.
Это не бродкаст.

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


 
clickmaker ©   (2013-04-26 00:15) [10]

> [8] Дмитрий С ©   (26.04.13 00:05)

state machine?


 
clickmaker ©   (2013-04-26 00:18) [11]

Удалено модератором


 
O'ShinW ©   (2013-04-26 00:19) [12]


> state machine?

или рекурсия, смотря в каком контексте


 
O'ShinW ©   (2013-04-26 00:25) [13]

Удалено модератором


 
Дмитрий С ©   (2013-04-26 01:02) [14]


> clickmaker ©   (26.04.13 00:15) [10]
> > [8] Дмитрий С ©   (26.04.13 00:05)
>
> state machine?

Не знаю, потому и спрашиваю. Поищу по этим словам. Спасибо.


 
Юрий Зотов ©   (2013-04-26 01:11) [15]

> Дмитрий С ©   (26.04.13 00:05) [8]

> Как называется подход, когда есть некое состояние и процедура, которая
> меняет это состояние. Затем снова выполняется эта же процедура на новом
> состоянии и снова его меняет и так далее?

Конечный автомат?


 
Дмитрий С ©   (2013-04-26 02:23) [16]


> Конечный автомат

Бегло почитал Вику, похоже на то. Никогда не вникал в смысл этого понятия, но похоже это оно и есть. Спасибо.


 
DVM ©   (2013-04-26 10:24) [17]


> Дмитрий С ©   (26.04.13 02:23) [16]


>  Никогда не вникал в смысл этого понятия, но похоже это
> оно и есть.

Другое название машина состояний, соответствующий паттерн State Machine.
Вообще любой программист рано или поздно сталкивается с написание машины состояний для разбора каких-либо данных.


 
О-Сознание   (2013-04-26 10:35) [18]


> clickmaker ©   (25.04.13 23:57) [7]
>
> > [0] О-Сознание   (25.04.13 23:11)
>
> а чего тебя это так возбудило? Сигнал-слот всего лишь другое
> название для Сообщение-обработчик


Значит "да"?


 
O'ShinW ©   (2013-04-26 10:45) [19]

Мне тогда ЮЗ посоветовал - до сих пор помню.

вместо кучи веток
команда1 - ответ - анализ ответа1
- команда21 -  ответ - анализ ответа21
    - команда31 -  ответ - анализ ответа31
       - и т.п., углубляемся в ветвление, в зависимости от ответов
    - команда32 -  ответ - анализ ответа32
  - и т.п., выходим из углубления
вот вместо этого безобразия описываем переходы из состояний, а потом, в зависимости от ответа, определяем состояние и переводим в следующее, исходя из таблицы переходов.

Особенно гут при управлении по сети, когда команда ушла, а ответ придет потом когда -нибудь


 
Дмитрий С ©   (2013-04-26 15:15) [20]


> Вообще любой программист рано или поздно сталкивается с
> написание машины состояний для разбора каких-либо данных.

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


 
О-Сознание   (2013-04-26 15:28) [21]


> Дмитрий С ©   (26.04.13 15:15) [20]
>
>
> > Вообще любой программист рано или поздно сталкивается
> с
> > написание машины состояний для разбора каких-либо данных.
>
>
> Конечно сталкивался. Но сейчас мне нужно нечто другое.
> Мне нужно написать такую программу, которая допускает что
> ее могут прервать в любой момент (например, выдергиванием
> шнура из розетки). Возобновление работы должно быть с места
> на котором она прервалась.
>


Раз в интервал делать snapshot?


 
Дмитрий С ©   (2013-04-26 15:28) [22]


> Раз в интервал делать snapshot?

Вроде того и делаю. После каждого изменения состояния.



Страницы: 1 вся ветка

Текущий архив: 2013.10.06;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.012 c
15-1366835403
Юрий
2013-04-25 00:30
2013.10.06
С днем рождения ! 25 апреля 2013 четверг


15-1366883286
О-Сознание
2013-04-25 13:48
2013.10.06
Наглядная настройка параметров.


15-1367320515
Pit
2013-04-30 15:15
2013.10.06
Потокобезопасно ли ADO?


15-1365965231
ProgRAMmer Dimonych
2013-04-14 22:47
2013.10.06
Парсинг PHP-кода


2-1358661812
N.Cage
2013-01-20 10:03
2013.10.06
Как убрать символы переноса в ячейке StringGrid