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

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

Code completion [D6, Win2k]


Sokoloff ©   (2002-07-04 17:19:00) 

Люди, необходимо сделать "Code completion" как в delphi.
То что нужно добавить ListBox я знаю, вопрос в другом.
ListBox обрезается по форме, т.е. видна только часть listbox-а в пределах формы.
Как можно сделать видимой часть listbox-а за пределами формы?


tsarevep   (2002-07-05 10:13:00) [1]

А вообще есть куча библиотек с этими данными. Когда то я тоже пробывал. Но вопрос за вопросом возникал по мере продвижения и багов все больше и больше. Просто скачай какую нибудь библиотеку с исходными кодами. Например R&A Lib, и посмотри как это делается!


Юрий Зотов   (2002-07-04 19:40:00) [2]

Проставьте ListBox"у стиль WS_POPUP. Или посмотрите, как открывает список ComboBox.


Volj   (2002-07-04 19:39:00) [3]

"Не проще тогда создать форму с borderStyle:=bsNone"
Конечно, проще.
"А как сделано выпадающий список у Combobox"
А зачем в контексте задачи?


Sokoloff   (2002-07-04 19:37:00) [4]

Неправильно я написал, после всех манипуляций в панели задач появляется еще одна (без иконки и названия) и если ее активизировать то listbox начинает реагировать на мыш и клаву.
Главная форма при этом становиться неактивной.
Не проще тогда создать форму с borderStyle:=bsNone?
А как сделано выпадающий список у Combobox?
Я пытался разобраться в исходниках, но IMHO там черт ногу сломит.


Volj   (2002-07-04 19:28:00) [5]

windows.SetFocus(form1.ListBox1.Handle)


Sokoloff   (2002-07-04 19:26:00) [6]

Извините за назойливость, но еще проблема теперь listbox не риагирует на внешние раздражители (мыш и клавиатура). Надо ставить хуки, или можно проще сделать?


Volj   (2002-07-04 19:14:00) [7]

"листбокс уходит по нее" -
Попробуй:
SetWindowPos(form1.ListBox1.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE);


Sokoloff   (2002-07-04 19:05:00) [8]

Спасибо, за ответ.


procedure listset;
begin
//form1.ListBox1.Parent := nil;
SetParent(form1.ListBox1.Handle, HWND_DESKTOP);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
listset;
end;

Правильно я вас понял?
Но, если написать Parent:=nil, выпадает ошибка "Control "ListBox1" has no parent window".
Без этой строки все ок.
Еще вопрос, поменял я парента, потом кликаю на форме и листбокс уходит по нее, при щелчке на листбоксе он не всплывает вперед. Как его выдвинуть?


Игорь Шевченко   (2002-07-04 17:42:00) [9]

При вызове ListBox"а ему надо сказать SetParent(HWND_DESKTOP), тогда он может вылезать за пределы формы. Перед этим сказать Parent := nil


Наверх

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