Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.01 c
2-1358341960
McLotos
2013-01-16 17:12
2013.10.06
Разбросать результат SQL-запроса по переменным


15-1366559274
UseSynergy
2013-04-21 19:47
2013.10.06
Ищу программистов для стартапа


6-1269649035
defen
2010-03-27 03:17
2013.10.06
демодуляция сигнала с GMSK модуляцией


2-1358407010
Cobalt
2013-01-17 11:16
2013.10.06
Почему компилируется?


3-1293263111
dik59
2010-12-25 10:45
2013.10.06
Создание домена





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