Создание своего компонента!
От: santaxxl  
Дата: 15.04.05 08:40
Оценка:
Создаю свой компонент наследник TWinControl, перегружаю функцию CreateWindowHandle так:
WindowHandle := CreateWindowExW(ExStyle, WinClassName,
'', Style, X, Y, Width, Height, WndParent, 0, WindowClass.hInstance, Param);

На форму компонент кидается нормально, а вот при закрытии формы вылетает с ошибкой
Invalid Window Handle: 1400
Что ему не нравиться?
Re: Создание своего компонента!
От: Danchik Украина  
Дата: 15.04.05 11:22
Оценка:
Здравствуйте, santaxxl, Вы писали:

S>Создаю свой компонент наследник TWinControl, перегружаю функцию CreateWindowHandle так:

S>WindowHandle := CreateWindowExW(ExStyle, WinClassName,
S> '', Style, X, Y, Width, Height, WndParent, 0, WindowClass.hInstance, Param);

S>На форму компонент кидается нормально, а вот при закрытии формы вылетает с ошибкой

S>Invalid Window Handle: 1400
S>Что ему не нравиться?

Абалдеть
Что же ты такое делаеш? Просто CreateParams перекрыть тебе было мало?
Да и чем поданый тобой код отличается от TWinControl.CreateWindowHandle? Насколько я помню, он неплохо работатет

procedure TWinControl.CreateWindowHandle(const Params: TCreateParams);
begin
  with Params do
    FHandle := CreateWindowEx(ExStyle, WinClassName, Caption, Style,
      X, Y, Width, Height, WndParent, 0, WindowClass.hInstance, Param);
end;


Хотя я не понял зачем ты тут используеш unicode версию CreateWindowEx — CreateWindowExW
Re[2]: Создание своего компонента!
От: santaxxl  
Дата: 18.04.05 05:52
Оценка:
D>Хотя я не понял зачем ты тут используеш unicode версию CreateWindowEx — CreateWindowExW

Именно для этого я и перекрываю эту функцию! Если через CreateParams можно задать какие-либо флаги, для того чтобы создавалось юникодовое окно- буду только рад

А вопрос в том- как правельно перекрывать фцнкцию CreateWindowHandle наследника TWinControl,для создания постейшего например EDIT-а!
Re[3]: Создание своего компонента!
От: Danchik Украина  
Дата: 18.04.05 09:15
Оценка:
Здравствуйте, santaxxl, Вы писали:

D>>Хотя я не понял зачем ты тут используеш unicode версию CreateWindowEx — CreateWindowExW


S>Именно для этого я и перекрываю эту функцию! Если через CreateParams можно задать какие-либо флаги, для того чтобы создавалось юникодовое окно- буду только рад


S>А вопрос в том- как правельно перекрывать фцнкцию CreateWindowHandle наследника TWinControl,для создания постейшего например EDIT-а!


Смотри что я нарыл просто поискав в интернете за 5 минут: TntWare Delphi Unicode Controls

Скачай себе исходники и посмотри что к чему.
Удачи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.