Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];

Вниз

не отображаются компоненты   Найти похожие ветки 

 
snake2003   (2004-06-18 11:29) [0]

создал потомка от TCustomControl

procedure TSnPopupWindow.CreateParams(var Params: TCreateParams);
begin
 inherited CreateParams(Params);
 with Params do
 begin
   Style   := WS_POPUP or WS_BORDER or WS_CLIPCHILDREN;
   ExStyle := WS_EX_TOOLWINDOW or WS_EX_TOPMOST;
   WindowClass.Style := CS_SAVEBITS;
 end;
end;

отображаю так

procedure TSnPopupWindow.ShowPopup(Origin: TPoint);
begin
 Self.Width := FEditor.Width;
 SetWindowPos(Handle, HWND_TOP, Origin.X, Origin.Y, 0, 0,SWP_NOSIZE or SWP_NOZORDER or SWP_NOACTIVATE or SWP_SHOWWINDOW);

 FList := TSnPopupList.Create(Self);
 with FList do
 begin
   Parent  := Self;
   Visible := True;
   Left    := 0;
   Top     := 0;
   Width   := Self.Width - GetSystemMetrics(SM_CXVSCROLL);
   Height  := Self.Height;
   Color   := clRed;
 end;

 FEditor.SetFocus;
 FVisible := True;
end;

так вот после этого их не видно, но если пишу так:
FList.Parent := FEditor;
то список отображается на FEditor в чем тут косяк ?


 
pasha_golub ©   (2004-06-18 12:08) [1]

Все правильно, родитель FEditor на нем и отображается.


 
snake2003   (2004-06-18 12:10) [2]

а мне надо чтобы родителем был Self т.е. само выпадающее окно


 
TUser ©   (2004-06-18 12:40) [3]

procedure TControl.SetParent(AParent: TWinControl);
begin
 if FParent <> AParent then
 begin
   if AParent = Self then
     raise EInvalidOperation.CreateRes(@SControlParentSetToSelf);

Увы, Ж:)


 
snake2003   (2004-06-18 17:37) [4]

я код не правильный привел вверху пишу так:
FList := TSnPopupList.Create(Self);
FList.Parent := Self;
т.е. родителем является не сам объект, а окно на котором он расположен.

а в TControl имеется в виду что нельзя на себя ссылаться.


 
TUser ©   (2004-06-18 17:49) [5]

Ну, так ты писал выше (я так понял) про самого себя. А то, что родителем (но не предком - вот пойми эту терминологию :) является объект "на котором он расположен", так это всегда так.

Вот здесь Self - это FList, т.к. with

>  FList := TSnPopupList.Create(Self);
>  with FList do
>  begin
>    Parent  := Self;


 
TUser ©   (2004-06-18 17:51) [6]

Мой предыдуший пост считай навеянным Старым Похмельником *)


 
TUser ©   (2004-06-18 17:58) [7]

А так все должно работать. Например, так работает
procedure TForm1.FormCreate(Sender: TObject);
var   Pan: TPanel;
begin
  Pan:=TPanel.Create(Application);
  with Pan do begin
     Parent:=self;
  Left    := 0;
  Top     := 0;
  Width   := Self.Width - GetSystemMetrics(SM_CXVSCROLL);
  Height  := Self.Height;

     end;
end;


 
snake2003   (2004-06-18 18:17) [8]

вот и мне кажется что должно работать.
если я этот кусок кода выношу из компонента в форму то все ОК или ставлю родителем все что угодно кроме своего выпадающего списка то тоже все ОК. вот я и парюсь.


 
snake2003   (2004-06-18 18:34) [9]

мля. день что ли неудачный сегодня. пришлось перезагрузить тачку и после перезагрузки все заработало - че было не знаю.
всем большое спасибо. особенно TUser.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.037 c
3-1086596136
serg128
2004-06-07 12:15
2004.07.04
Как в DBGrid программно удалить колонку?


3-1086866997
avgur
2004-06-10 15:29
2004.07.04
корректность вновь сохраненных данных


14-1087148884
zokzok
2004-06-13 21:48
2004.07.04
Сколько времени в день можно работать компьютеру


6-1084003564
DimDim
2004-05-08 12:06
2004.07.04
Имя компьютера в локальной сети


1-1087922647
zep
2004-06-22 20:44
2004.07.04
Edit





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский