Форум: "Прочее";
Текущий архив: 2013.10.06;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.003 c