![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
#$# PaVeL #$# |
![]() ![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 91 Пол: Мужской Реальное имя: Павел Репутация: ![]() ![]() ![]() |
Привет всем, всем, всем!
А теперь по делу... Прошу подсказать как создать компонент являющимся прямым потомком Class (TComponent) и имеющий одно свойство Property Handle : HWND При этом свойство должно автоматически создаваться и удаляться. Цель: Сделать объект который может принимать и отправлять сообщения в программе не имеющей ни формы, ни даже консольного окна. (Без окон и дверей полна горница людей ![]() ![]() |
hardcase |
![]()
Сообщение
#2
|
![]() code warrior ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: ![]() ![]() ![]() |
А какие сообщения будет принимать этот компонент?
Дело в том, что у меня есть не компонент, а класс потока (thread), которому можно посылать сообщения и он их будет обрабатывать. -------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
#$# PaVeL #$# |
![]() ![]()
Сообщение
#3
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 91 Пол: Мужской Реальное имя: Павел Репутация: ![]() ![]() ![]() |
При этом Цитата и имеющий одно свойство
При этом свойство должно автоматически создаваться и удаляться. при этом конструктор и деструкторы всё должно быть. Подскажите реализацию. А насчёт компонента, Hardcase, хотелось бы взглянуть на него. |
hardcase |
![]()
Сообщение
#4
|
![]() code warrior ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: ![]() ![]() ![]() |
Вот класс потока-нитки.
Я так понял, ты создаёшь класс для рабты с файлами. А разве для этого не подходят обычные стримы? Прикрепленные файлы ![]() -------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
hiv |
![]()
Сообщение
#5
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 660 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
в программе не имеющей ни формы, ни даже консольного окна. (Без окон и дверей полна горница людей smile.gif ) Для этого существуют сервисы (службы), чтобы такой сделать на Delphi: File -> New -> Other -> Service Application -------------------- Никогда не жадничай. Свои проблемы с любовью дари людям!
|
#$# PaVeL #$# |
![]() ![]()
Сообщение
#6
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 91 Пол: Мужской Реальное имя: Павел Репутация: ![]() ![]() ![]() |
Помоему Вы оба меня не поняли, хотя всеравно спаибо.
Суть из одной проги послать в другую сообщение. Но если нет формы то нужен Handle : HWND , а где его взять? Вывод: надо написать компонент! То есть procedure OpenFile(var msg: TMessage); message WM_OPENFILE; Это только пример что будут сообщения. Надеюсь теперь понятно объяснил. |
hiv |
![]()
Сообщение
#7
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 660 Пол: Мужской Реальное имя: Михаил Репутация: ![]() ![]() ![]() |
Какое сообщение? Если виндовое с помощью SendMessage, то Handle : HWND должен быть того приложения, которому посылаешь сообщение.
-------------------- Никогда не жадничай. Свои проблемы с любовью дари людям!
|
hardcase |
![]()
Сообщение
#8
|
![]() code warrior ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: ![]() ![]() ![]() |
Зная ThreadID можно послать виндусовское сообщение потоку. Так мой класс работает.
Сообщение отредактировано: hardcase - 17.01.2006 13:55 -------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
#$# PaVeL #$# |
![]() ![]()
Сообщение
#9
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 91 Пол: Мужской Реальное имя: Павел Репутация: ![]() ![]() ![]() |
![]() Цитата Какое сообщение? Если виндовое с помощью SendMessage, то Handle : HWND должен быть того приложения, которому посылаешь сообщение. Если у меня окна нет как я его приму? Поэтому и прошу помочь сделать компонент. Форма ведь тоже компонент! А про потоки - это уже другая история. О ней попожже. |
hardcase |
![]() ![]()
Сообщение
#10
|
![]() code warrior ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: ![]() ![]() ![]() |
![]() Если у меня окна нет как я его приму? Поэтому и прошу помочь сделать компонент. Форма ведь тоже компонент! А про потоки - это уже другая история. О ней попожже. Вот тебе сэмпл, в котором создаётся окно, способное принимать сообщения. Без VCL. Там полно комментов, так-что разобраться - раз плюнуть. Сообщение отредактировано: hardcase - 18.01.2006 14:41 Прикрепленные файлы ![]() -------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
#$# PaVeL #$# |
![]() ![]()
Сообщение
#11
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 91 Пол: Мужской Реальное имя: Павел Репутация: ![]() ![]() ![]() |
Мне окна вообще ненужны я прошу лишь помочь правильно резервировать и связывать с компонентом HWND и всё!
P.S. Но всёравно спасибо... |
Dark |
![]()
Сообщение
#12
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: ![]() ![]() ![]() |
ну помоему - окно все равно создаеться.
Ты регистрируешь класс окна, затем создаешь окно (точнее - ту сущьность на которую и ссылаеться HWND) почитай DRKB - минимальное приложение без VCL а без того чтоб его создавать - ты ведь не сможешь тогда принимать сообщения... ИМХО - это то о чем ты спрашивал... -------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
deema |
![]()
Сообщение
#13
|
Гость ![]() |
Мне окна вообще ненужны я прошу лишь помочь правильно резервировать и связывать с компонентом HWND и всё! P.S. Но всёравно спасибо... Handle, насколько я понимаю, это описатель объекта. Объектом может быть и окно и поток и куча чего другого, но хэндла без объкета быть не может, это просто DWord число тогда, что с него взять-то. Сообшения могут быть посланы только объекту (например, созданному специально окну, пусть и невидимому), поэтому создавать все равно что-то придется. Удачи |
![]() ![]() |
![]() |
Текстовая версия | 11.07.2025 4:17 |