Программирование под WinAPI в Delphi
1. Необходима информация по программированию на чистом API в Delphi(сайты,туториалы, хелпы и т.д.).
2. Вопрос таков: есть шаблон диалога - там нестандартный компонент TMyComponent. Как осуществить обработку этого компонента?
3. Есть функция CreateWindow, она создаёт пустое окно, как добавить компоненты в это окно?
Есть вопросы и их не так уж и мало:
1. Необходима информация по программированию на чистом API в Delphi(сайты,туториалы, хелпы и т.д.).
2. Вопрос таков: есть шаблон диалога - там нестандартный компонент TMyComponent. Как осуществить обработку этого компонента?
3. Есть функция CreateWindow, она создаёт пустое окно, как добавить компоненты в это окно?
2.Какую обработку?Надо иметь сам компонент
ответы на все др вопросы ищи тут
2.Какую обработку?Надо иметь сам компонент
1. как создать такой компонент?
2. кто будет его родителями?
3. если можно, то пример
1. как создать такой компонент?
2. кто будет его родителями?
3. если можно, то пример
Никак.Найди исходники этого компонента
Никак.Найди исходники этого компонента
Или удали все обращения к этому компоненту, если повезет, то откомпилится прога
Никак.Найди исходники этого компонента
Вы меня не поняли, я сам хочу создать компонент.
1. Если делать в WorkShope(кстати по теме не знаете ли где его достать?), то там в свойствах элемента есть строка Class вот я её хочу использовать, а то самому все события обрабатывать - долго.
2. Как мне использовать ресурсы диалога. Дело в том, что я создал ресурс диалога, там был только окно диалога, и никаких дополнительных элементов(кнопок, строк ввода, списков и т.д.). Подключил его к программе, откомпилировал - работает, но как только я положил туда кнопочку, программа перестала работать, т.е она компилировалась, никаких ошибок, только сразу заканчивала работать(окошко вроде промигивало). Что это такое?
Есть вопросы и их не так уж и мало:
1. Необходима информация по программированию на чистом API в Delphi(сайты,туториалы, хелпы и т.д.).
2. Вопрос таков: есть шаблон диалога - там нестандартный компонент TMyComponent. Как осуществить обработку этого компонента?
3. Есть функция CreateWindow, она создаёт пустое окно, как добавить компоненты в это окно?
1. На счет инфы, то лучше MSDN ничего нет.
2. Каждое окно имеет свой HWND, имея его можеш к нему обращаться функциями АПИ.
3. Эта же функция и добавляет компоненты (Едиты, кнопки, комбобоксы, листвью... Это все окошки со соими HWND)
procedure Handler(var message:TMessage);message some_message;
кто назначает этой процедуре обработку сообщения?
сам Delphi? или кто?
А вот в Delphi есть такое:
procedure Handler(var message:TMessage);message some_message;
кто назначает этой процедуре обработку сообщения?
сам Delphi? или кто?
Это одна из фирменных фич Дельфи, прошитая в компилятор и реализованная в RTL. Посмотри исходники TObject - это сделано там.
Например Самое главное окно - Один класс.
Другое окно на главном - другой класс и т.д.
Но при запуске программы происходит runtime ошибка.
Я прикрепил файл - там программа. Посмотрите.
Но при запуске программы происходит runtime ошибка.
Я прикрепил файл - там программа. Посмотрите.
А конструктора-то я и не приметил.
А конструктора-то я и не приметил.
а я не приметил цикла обработки сообщений:
Вот код на Си, его нужно добавить после ShowWindow (предварительно его раскомментировав)
MSG msg;
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
не знаю как там на делфи будет... что то вроде этого
var
mess:MSG;
begin
....
ShowWindow(hwnd);
while (GetMessage(@msg,nil,0,0))
begin
TranslateMessage(@msg);
DispatchMessage(@msg);
end;
end;
а я не приметил цикла обработки сообщений:
Гы, к runtime-ошибке это не имеет никакого отношения. :D
Или так нельзя делать, чтоб метод объекта был wnd функцией?
Можно. Для этого в недрах VCL есть MakeObjectInstance. Не уверен, может быть, в последних версиях его заменили на что-то другое, могу и путать.
А вообще можешь скачать исходники KOL и посмотреть, как реализовано там. Наверное, даже не знаешь, что есть альтернативная библиотека визуальных компонентов для Дельфи, разработанная русскими. Ищи в Сети - проект в определенных кругах очень популярен.
Посмотрите пожалуйста и скажите, что такое?
Runtime error 216 - бишь Access violation. В исходнике заметил еще использование ключевого слова overload вместо override. RTFM, RTFM и еще раз RTFM!
Runtime error 216 - бишь Access violation. В исходнике заметил еще использование ключевого слова overload вместо override. RTFM, RTFM и еще раз RTFM!
1. Так какая разница между override и overload. В хелпе я начитал, что overload используется с virtual и dynamic methods а override с остальными.
2. Что такое RTFM?