На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Обязательно выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.

Этот раздел предназначен для вопросов, посвященных разработке компонентов, а также для тестирования собственных бесплатных компонентов с открытым исходным кодом.

Здесь запрещается:
1. Размещать ссылки на какие-либо коммерческие компоненты, реализующие требуемую функциональность.
2. Обсуждать и тестировать коммерческие компоненты или компоненты с закрытым кодом.
3. Давать ссылки на сайты с исходным кодом компонентов. Все тестируемые исходные коды должы быть размещены на сайте ИСХОДНИКИ.RU.
Модераторы: Rouse_, DimaBr
  
> ComboBox или .... ? , Вместо списка панель
    Нужно сделать нечто очень похожее на ComboBox, но чтобы вываливалась Panel вместо списка.
    Понимаю, вопрос довольно пространственный, посему для начала прошу подсказать направление, от чего наследоваться и что переопределить добавить.
    Можно TCustomEdit + TSpeedButton + TPanel. А может как-то по другому?
      Перехватывать CB_SHOWDROPDOWN и отрисовывать свою панель в нужном месте.
        хм. отрисовывать где? как?
        если просто при CB_SHOWDROPDOWN помещать панель под ComboBox, то сверху панели ComboBox все равно отрисует свой лист(даже если он пустой) Или я чего не так понимаю?
          Тебе нужно заблокировать это сообщение и сделать на него свою реакцию. Чичас времени эксперементировать нет...
            ExpandedWrap disabled
              TExCombo= class(TCustomComboBox)
                private
                  procedure WndProc(var Message: TMessage); override;
                end;
               
              procedure TExCombo.WndProc(var Message: TMessage);
              begin
                if Message.Msg = CB_SHOWDROPDOWN
                  then Text := 'CB_SHOWDROPDOWN'
                  else inherited;
              end;


            так не катит. Я вообще пока не понимаю когда ComboBox получает это сообщение. Буду копать, может еще у кого какие мысли есть по этому ?
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0248 ]   [ 16 queries used ]   [ Generated: 30.04.24, 15:09 GMT ]