|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.08.2011, 15:30 | #1 |
Пользователь
Регистрация: 09.12.2010
Сообщений: 26
|
посылка сообщений между экземплярами классов.
Free Pascal , Lasarus;
Нужно чтоб екземпляры классов могли посылать другу другу сообщения(Сигналы). Причём не ждать ответа а продолжать выполнение кода тоесть гдето так //работает код SendSignal(UserList[i],'строка или более сложная конструкция'); // снова работает код не дожидаясь ответа В этоже время у этого самого UserList[i] должен вызватся метод getSignal(User:TUser;Signa:'строка или более сложная конструкция'); раньше вызывал на прямую getSignal но пока эта getSignal не закончит работу Код вызвавший её выполнятся не будет. Как орказизовать такую посылку сообщений. (Должно быть кросплатформенно) |
01.08.2011, 15:45 | #2 |
Пользователь
Регистрация: 09.12.2010
Сообщений: 26
|
Думаю сделать через потоки.
Вот пытаюсь реализовать упрощённый пример, который не хочет работать. Код:
|
01.08.2011, 16:16 | #3 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
cs не создали, не говоря уже про вызов inherited Create().
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
01.08.2011, 16:39 | #4 |
Пользователь
Регистрация: 09.12.2010
Сообщений: 26
|
А если серьёздно? Create не существует в преведущем, а cs это Запись.
ввёл функцию InitCriticalSection(cs); результата - 0; |
01.08.2011, 17:32 | #5 | |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
Цитата:
Может все же у предка ? У предка он есть и вызов его крайне важен. Как крайне важен собственно и вызов конструктора твоего класса TUser, прежде чем обращаться к объекту этого класса. А у тебя ни того ни другого в коде не наблюдается. Потому и грабли) |
|
01.08.2011, 17:34 | #6 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
кр.того с какого перепугу методы TUser.Create и TUser.Execute стали опубликованными ?
Execute был, есть и будет защищенным, а Create - публичным. Ныне, присно и во веки веков) |
01.08.2011, 18:25 | #7 |
Пользователь
Регистрация: 09.12.2010
Сообщений: 26
|
Изменил, проще кажется уже ну совсем некуда. Вылетает при Create. В чём ошибка?
TSimpleThread= class(TThread) protected procedure Execute; override; public end; procedure TSimpleThread.Execute; begin end; procedure TForm1.FormCreate(Sender: TObject); begin Some:=TSimpleThread.Create(False); end; |
01.08.2011, 20:38 | #8 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
> Вылетает при Create
Каким курсом ? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
спонтанная ошибка при синхронизации потока Thread и основного приложения(Посылка сообщений) | Человек_Борща | Общие вопросы Delphi | 2 | 14.05.2011 22:25 |
Сбор сообщений службы сообщений Windows XP | testor48 | Работа с сетью в Delphi | 3 | 31.03.2011 20:20 |
Посылка пользовательских сообщений в чужое приложение | RFbager | Win Api | 8 | 11.01.2011 20:51 |
Создание классов и использование объектов классов при написании программ в среде C++. | Frozen inside | Помощь студентам | 0 | 16.04.2009 23:18 |
Посылка сообщений Windows другой программе | shurik_7866 | Win Api | 1 | 23.10.2008 16:25 |