Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TWinControl [D7, WinXP]


Страницы:   1 2

P@vel ©   (2004-06-17 11:18:00) 

Можно создать компонент не имеющий родителя и (или) владельца?


jack128   (2004-06-18 19:43:00) [1]


> > TObject.Dispatch(Msg);
>
> но для этого сначала msg надо получить, а для этого нужна
> очередь выборки сообщений. имхо.
не совсем. В дельфи есть собственное понятие "сообщение". TControl реализован так, что сообщение в терминах Windows преобразуется в сообщения Дельфи
procedure TControl.WndProc(var Message: TMessage);
var
 Form: TCustomForm;
begin
...
  Dispatch(Message);
end;
Поэтому Rem прав - даже TObject может принемать сообщения,  но только сообщения Delphi, а не Windows. Ответ в духе app(c) - абсолютно коректен ;-)


ПсихЪ   (2004-06-18 12:34:00) [2]

А вот с элементом TLabel всё несколько по другому. У него нет пропертей ParentWindow, которое есть у TEdit.
TEdit:

var
 Form : TForm;
 Edit : TEdit;
begin
 Edit := TEdit.Create( Form );
 Edit.ParentWindow := Form.Handle;
end.

TLabel:

var
 Form : TForm;
 Label : TLabel;
begin
 Label := TLabel.Create( Form );
 Label.Parent := TWinControl( Form );
end.


P@vel   (2004-06-17 16:35:00) [3]

Всем большое спасибо. Это реально помогло. Я уж было пытался через. CreateWindowEx но это какаято нереальная запарка. Класс регестрируется без проблем, а вот при попытке создания самого окна постоянно получаю ошибку 1400.


ПсихЪ   (2004-06-17 14:57:00) [4]

Удалено модератором


Тимохов   (2004-06-17 14:48:00) [5]

Удалено модератором


ПсихЪ   (2004-06-17 14:39:00) [6]

Удалено модератором


Тимохов   (2004-06-17 12:43:00) [7]

Удалено модератором


ПсихЪ   (2004-06-17 12:31:00) [8]

Удалено модератором


Тимохов   (2004-06-17 12:21:00) [9]

Удалено модератором


evvcom   (2004-06-17 12:20:00) [10]

Удалено модератором


ПсихЪ   (2004-06-17 12:20:00) [11]

Удалено модератором


Sandman25   (2004-06-17 12:19:00) [12]

Удалено модератором


Тимохов   (2004-06-17 12:18:00) [13]

Господа

> Sandman25 ©   (17.06.04 12:15) [11]


> evvcom ©   (17.06.04 12:17) [12]

Он же издевается :))) имхо...


evvcom   (2004-06-17 12:17:00) [14]

"Криэтя" по родителю (Owner), ты указываешь, кто потом будет ответственнен за его убийство. А Parent - кто ответственнен за его отображание.


Sandman25   (2004-06-17 12:15:00) [15]

[10] ПсихЪ   (17.06.04 12:14)

В create не родитель, а владелец.

PS. Боже, ну и день сегодня :)


ПсихЪ   (2004-06-17 12:14:00) [16]


> Тимохов

ПРЕОГРОМНЕЙШЕЕ ТЕБЕ СПАСИБО!!! Вот ни за что не мподумал бы... ): Т.е. вроде и логично, но ведь ни за что бы не подумал, что "криэтя" TEdit по родителю, родителя придётся прописывать отдельно... (:


Тимохов   (2004-06-17 12:12:00) [17]


> TObject.Dispatch(Msg);

но для этого сначала msg надо получить, а для этого нужна очередь выборки сообщений. имхо.

либо скрытое окно делать - очередь выборки будет штатной (главного потока).

либо делать доп поток - там делать выборку сообщений. Но если сообщения будут посылвать по sendmessage (т.е. синхнронные) то в потоке нужно делать окно все равно - иначе такие собщения будут игнорироваться.


Rem   (2004-06-17 12:09:00) [18]

> Мне нужен обьект который сможет принимать сообщения.

TObject.Dispatch(Msg);


Тимохов   (2004-06-17 12:09:00) [19]


> Что делать дальше, чтобы элемент TEdit отобразился на форме?

как минимум Parent выставить.


ПсихЪ   (2004-06-17 12:07:00) [20]

Чё-то я туплю... ):
Создаю массив элементов типа TEdit:

EditArr : array of TEdit;

Далее мне нужно на форме Form1 показать один TEdit:

SetLength( EditArr, 1 );
EditArr[0] := TEdit.Create( Form1 );
// Далее заполняю параметры ьтпа Left, Top, Width, Height и т.д.

Что делать дальше, чтобы элемент TEdit отобразился на форме?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо