![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Свои компоненты
CodeMaster © (2009-02-09 10:55:00)Я пишу программу на чистом API без использования VCL, возникает вопрос как мне создать свои компоненты в API не трогая при этом VCL? На VCL создавать всё гораздо проще TCustomControl помогает, но в API такой расслабухи нету и я теперь не знаю что-делать, подскажите.
Заранее спасибо.
CodeMaster (2009-02-09 11:40:00) [21]вот таким образом создаётся главная форма:
var
wc: TWndClass;
hWindow: HWND;
Msg: TMsg;
begin
wc.lpszClassName := 'POGiPlayer';
wc.lpfnWndProc := @MainWndProc;
wc.Style := CS_VREDRAW or CS_HREDRAW;
wc.hInstance := hInstance;
wc.hIcon := LoadIcon(0, IDI_APPLICATION);
wc.hCursor := LoadCursor(0, IDC_ARROW);
wc.hbrBackground := (COLOR_WINDOW + 1);
wc.lpszMenuName := nil;
wc.cbClsExtra := 0;
wc.cbWndExtra := 0;
RegisterClass(wc);
hWindow := CreateWindowEx(WS_EX_CONTROLPARENT or WS_EX_WINDOWEDGE,
'POGiPlayer',
'POGiPlayer - Test Mode',
WS_VISIBLE or WS_CLIPSIBLINGS or
WS_CLIPCHILDREN or WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0,
400, 300,
0,
0,
hInstance,
nil);
ShowWindow(hWindow, CmdShow);
UpDateWindow(hWindow);
while GetMessage(Msg, 0, 0, 0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
Halt(Msg.wParam);
end;
Anatoly Podgoretsky (2009-02-09 11:40:00) [22]> CodeMaster (09.02.2009 10:55:00) [0]
АПИ не поддерживает и не совместим с TComponent
CodeMaster (2009-02-09 11:38:00) [23]Ну а тогда каким образом мне вывести на форму компоненты?
Сергей М. (2009-02-09 11:26:00) [24]
> как потом функцией CreateWindowEx вызвать компонент?
Чавой-то ?
CreateWindowEx не предназначена для "вызова компонентов".
Мало того, ни одна WinAPI-функция знать ничего не знает и знать не может ни о каких "компонентах" - в то время как строгалась Windows, среда Делфи с ее компонентами не существовала вообще или находилась в пуберантном периоде
Rouse_ (2009-02-09 11:25:00) [25]В принципе можно посмотреть как это сделано в КОL, там тоже VCL не тянется...
CodeMaster (2009-02-09 11:20:00) [26]Да но как потом функцией CreateWindowEx вызвать компонент?
Сергей М. (2009-02-09 11:05:00) [27]Наследуйся от TComponent