![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Компоненты на api (или еще как-нибудь) [D7, WinXP]
Дмитрий_177 © (2006-02-01 20:47:00)Написал я несколько своих компонентов, еще давно, но теперь я изучаю программирование на чистом api, чтобы размер программы был небольшим, по сравнению с использованием VCL. Так вот вопрос в том, что как мне вставить те компоненты, которые я создал? Точнее даже не вставить, а переписать их чтоли... на api... такое вообще реально? если они используют обработку сообщений "CM_...", "WM_...". Или придется всетаки подключать модудь с компонентом и программа "поползет" в размере...?
Sergey Masloff (2006-02-01 22:39:00) [21]Дмитрий_177 (01.02.06 22:12) [17]
Собственно говоря, их даже не посылают а делают Perform() см. Forms.pas
Дмитрий_177 (2006-02-01 22:12:00) [22]Я ловлю CM_MOUSEENTER при наведении курсора на компонент, CM_MOUSELEAVE когда курсор выходит за пределы компоненты и т.д. А вот посылать кто посылает эти сообщения, если честно не знаю...
Zeqfreed (2006-02-01 22:11:00) [23]Дмитрий_177 (01.02.06 22:03) [14]
У тебя в голове каша. Не нужно смешивать WinAPI и VCL. Считай, что VCL — это надстройка над WinAPI. Если пишешь программу на WinAPI, то не надо пытаться примешать туда VCL, используй стандартные механизмы, сообщение и все остальное. В MSDN это все довольно подробно описано, а так же есть множество примеров, на Delphi в том числе.
Sergey Masloff (2006-02-01 22:08:00) [24]Да отлавливать без проблем как и любое сообщение. А вот посылать кто их будет?
Дмитрий_177 (2006-02-01 22:03:00) [25]А как тогда отлавливать сообщения CM...? они помоему Борландовские в VCL
Zeqfreed (2006-02-01 21:53:00) [26]Дмитрий_177 (01.02.06 21:44) [11]
Можно отрисовывать что угодно, как угодно и, практичеки, где угодно посредством API-функций.
begin...end (2006-02-01 21:45:00) [27]> А как же делают программы на api? как туда кнопочки вставляют,
> Edit-ы и другие компоненты?
Ресурсы
Дмитрий_177 (2006-02-01 21:44:00) [28]Т.е. получается так, что на api можно сделать программу только со стандартными компонентами, включенные в windows? А если со своими компонентами(они для скинообразной формы) то придется включать в программу модули этих компонентов(они VCL)?
Zeqfreed (2006-02-01 21:40:00) [29]Список контролов с описаниями и примерами использования:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/wincontrols.asp
Gero (2006-02-01 21:26:00) [30]http://excode.ru/arttopic40.html?ex=611fc40ee631363a2e72402b24e41aee
Sergey Masloff (2006-02-01 21:19:00) [31]На всякий случай
BUTTON
COMBOBOX
EDIT
LISTBOX
RICHEDIT
RICHEDIT_CLASS
SCROLLBAR
STATIC
Это все предопределенные классы окон которые предоставляет Windows
Ну еще MDICLIENT но это отдельная песня
Sergey Masloff (2006-02-01 21:16:00) [32]То же самое.
Дмитрий_177 (2006-02-01 21:11:00) [33]Хорошо.. а как тогда тотже ListBox?
Sergey Masloff (2006-02-01 21:06:00) [34]Дмитрий_177 (01.02.06 21:02) [4]
>т.к. при запуске программы она записывается в оперативную память, ведь так?
Нет
>А как же делают программы на api?
Ну кнопочки это всего лишь окна специального вида. Так что как обычно CreateWindow()....
Дмитрий_177 (2006-02-01 21:02:00) [35]А вот по поводу размера: надо написать например будильник, который будет постоянно запущен на компе, чтобы он "прозвонил" вовремя ))) если exe будет например мегабайт занимать, я думаю что не очень как-то будет тратить мегабайт оперативки на какой-то будильник :) т.к. при запуске программы она записывается в оперативную память, ведь так?
Дмитрий_177 (2006-02-01 20:58:00) [36]А как же делают программы на api? как туда кнопочки вставляют, Edit-ы и другие компоненты?
Rouse_ (2006-02-01 20:57:00) [37]Вдогонку, а зачем размер то программы маленький? Сейчас век выделенок и жестких дисков по 200-300 гигобайт вроде как.
В мастера Демосцены без знания ассемблера тоже лезть не стоит...
ЗЫ: CM_... сообщений в АПИ нет...
Rouse_ (2006-02-01 20:54:00) [38]Компонент и АПИ... хм... Мысль конечно замечательная, но применима только с точки зрения написания компонента (что есть правильно), но не для использования в приложении не опирающемся на VCL.
Похали-ка к начинающим :)