![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перехват сообщений самодельным окном. [D7, WinXP]
Galiaf © (2008-02-18 00:24:00)Доброго времени суток! Столкнулся с проблемой перехвата сообщений или событий окном созданным средствами WinAPI.<br>
В общем я создаю класс окна в одном модуле(wnd.pas) и дочерний класс в другом(main.pas), при этом у меня одна локальная процедура WndProc для всех окон. Я пробовал прописывать в дочернем классе процедуру для перехвата сообщений как делал это раньше на VCL
procedure WMPaint(var Msg : TWMPaint); message wm_paint;
Ничего не получилось, наверное я неправильно понимаю как работает такой способ перехвата, может быть надо присваивать каждому классу свой хэндл, ведь сообщения посылаются владельцу хэндла, но я не знаю как такое реализовать. <br>
Теперь пробую сделать события как на VCL (onPaint), но тоже пока безуспешно.
Заранее спасибо!
dsoft (2008-03-05 16:57:00) [1]
> пришли к выводу что object - это базовай класс...
Не совсем так. Лучше почитать литературу.
Сергей М. (2008-03-05 13:43:00) [2]
> просто так (02.03.08 10:05) [56]
Если class (и все что с ним связано) автору дан в "бесплатную нагрузку", почему бы этим не воспользоваться ? Минусов от этого никаких - одни плюсы)
Galiaf (2008-03-05 12:03:00) [3]
> кстати Galiaf, юзай object, зачем тебе class
До того как задать вопрос на форуме спрашивал у друга в чем разница между ними, пришли к выводу что object - это базовай класс... до того разговора использовал именно object но после начал использовать class, т.к. подумал, что object - это лишнее. В чем моя/наша ошибка?
> Согласен. Сделай, пожалуйста, соответствующие выводы для
> себя.
И я согласен с вами.
Уже давно считаю ветку закрытой, но отвечаю на коментарии.
dsoft (2008-03-02 23:58:00) [4]
> кстати Galiaf, юзай object, зачем тебе class
Для начала пусть узнает разницу между этими понятиями.
просто так (2008-03-02 10:05:00) [5]
> К сожалению автор вряд ли чему научится. Не имея соответствующих
> навыков пытаться построить "ракету"...
эт почему? винапи освоит маленько, поймет как не надо делать
кстати Galiaf, юзай object, зачем тебе class
dsoft (2008-03-02 08:51:00) [6]К сожалению автор вряд ли чему научится. Не имея соответствующих навыков пытаться построить "ракету"...
Германн (2008-03-02 01:51:00) [7]
> Galiaf © (29.02.08 03:13) [51]
>
>
> > Германн © (28.02.08 02:54) [49]
>
> Не стоит делать из хорошего форума помойку!
> Просьба проследовать в конференцию "Прочее".
>
Согласен. Сделай, пожалуйста, соответствующие выводы для себя.
Galiaf (2008-03-02 00:56:00) [8]
> dsoft © (01.03.08 23:20) [52]
Не могу согласитться.
> зачем сразу же, без достаточного опыта, пытаться перелопатить
> под себя VCL
Для того, чтобы получить тот самый опыт.
dsoft (2008-03-01 23:20:00) [9]Жаль, что автор такой упрямый. Я ведь предлагал реальную помощь при написании подобных программ, причем без оплаты, как некоторые предлагают. У меня достаточный опыт при написании не самых навороченных программ, но надеюсь автор на такое пока не замахивается. Но вот все равно никак не могу понять, ну зачем сразу же, без достаточного опыта, пытаться перелопатить под себя VCL? Для начала попробуй писать как я показывал, а потом по мере накопления опыта можно создавать и свои классы, наподобии того же VCL.
Galiaf (2008-02-29 03:13:00) [10]
> Германн © (28.02.08 02:54) [49]
Не стоит делать из хорошего форума помойку!
Просьба проследовать в конференцию "Прочее".
> откуда сомнения в правильности?
Я "самоучка" и свой код воспринимаю как догадки, каждые новые решения для меня сомнительны, даже если работают я ищу информацию о том как это делают опытные люди.
То, что я хотел сделать - это создать массив хэндлов для доступа к каждой форме и просто по массиву проверять, где что нужно рисовать. По-моему глупое и в корне неправильное решение проблемы. Но это способ работал бы 100%.
P.S.
ну 99%
ну или 99%.
просто так (2008-02-28 21:27:00) [11]
> Что-то похожее хотел сделать до того как задал вопрос но
> сомнения по поводу правильности заставили обратиться на
> форум.
откуда сомнения в правильности?
Германн (2008-02-28 02:54:00) [12]
> Galiaf © (27.02.08 23:42) [48]
>
>
> > просто так (26.02.08 00:35) [47]
>
> Что-то похожее хотел сделать до того как задал вопрос но
> сомнения по поводу правильности заставили обратиться на
> форум.
>
Лучше бы те сомнения заставили читать учебники.
Galiaf (2008-02-27 23:42:00) [13]
> просто так (26.02.08 00:35) [47]
Что-то похожее хотел сделать до того как задал вопрос но сомнения по поводу правильности заставили обратиться на форум.
просто так (2008-02-26 00:35:00) [14]>>Galiaf
Для начала не обязательно лезти в дебри VCL и вникать в MakeObjectInstance
Можно при создании окна сохранять соответствие handle и адреса объекта "обертки" например вмассиве, затем в общей WndProc по wnd:HWND восстонавливать адрес объекта и вызывать уже WndProc объекта обертки
Германн (2008-02-24 03:27:00) [15]
> Galiaf © (24.02.08 03:14) [45]
>
> Не понимаю, зачем столько критики???
Тебе "ответ" нужен или "готовый код"?
За "готовый код" нужно платить! Уж извини. Сей "готовый" код, как правило, добыт "плотом и кровью". Ну или за него уже кто-то заплатил. И теперь хочет получить свои денежки обратно, да ещё и с прибылью!
Шпаргалки забудь. Это было до реальной жиэни.
Galiaf (2008-02-24 03:14:00) [16]Не понимаю, зачем столько критики??? Не знаю как сделать, спросил на форуме, получил ответ, все работает. А дилетант я или нет, какая собственно разница? Или спрашивать на форумах и учиться на форумах можно только профи, а дилетантам можно только спрашивать из какой книги это вычитать?
Германн (2008-02-23 03:21:00) [17]
> Galiaf © (23.02.08 01:48) [43]
>
> я не отрицаю свое дилетантство, но то чем я якобы прикрываюсь
> - правда.
>
Ну так купи и читай книжки. Если не знаешь какие, то именно это и спроси.
P.S. Я удивляюсь "долготерпению" Сергей М. © .
Galiaf (2008-02-23 01:48:00) [18]я не отрицаю свое дилетантство, но то чем я якобы прикрываюсь - правда.
Сергей М. (2008-02-22 13:36:00) [19]Короче, ты взялся за непосильную (пока) для тебя задачу.
И вот этим вот
> получаю мелкий размер программы, больший контроль над программой,
> учусь, получаю удовольствия от программирования больше
> чем на VCL
свое откровенное дилетантство в этих вопросах прикрывать не надо)
Так что тебе прямая дорога в "Начинающие")
Сергей М. (2008-02-22 13:31:00) [20]
> имеется в виду цикл?
Причем здесь цикл ?
Я говорю о Pascal и ObjectPascal.