Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
2209 / 755 / 207
Регистрация: 02.02.2012
Сообщений: 3,656
Записей в блоге: 2
1

Реализация выдвижной панели слева

29.08.2014, 16:50. Показов 3990. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как реализовать выдвижную панель слева - будущий поиск для DBGrid?
На форму кинул с ActionManager1 кнопку, при нажатии которой, вылазила бы панель поиска.
Как сделать пропадающую надпись с edit после активации курсора в нем?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.08.2014, 16:50
Ответы с готовыми решениями:

Создание выдвижной панели в Windows
Здравствуйте, Решил тут сделать для себя программу, она представляет собой некую панельку сбоку...

Как удалить папку слева на панели Outlook 2013
Добрый день Установил Office 2013 и в Outlook при настройке учетных записей папки появляются...

Как поменять цвет боковой панели Qt Creator слева на чёрный?
Собственно цвет самого редактора в меню легко выбирается - ставишь цветовую схему Vim(dark) и...

Реализация одной панели с разными содержимыми
Добрый день :) Нужно реализовать на форме вот такую штучку (вложение 1). Для этого я использую...

13
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
29.08.2014, 17:43 2
Так у тебя вопрос по реализации выдвижной панели, или по подсказке? Подсказка делается легко и непринужденно: Начальный текст в edit

Сама панель - вот так:
Как сделать боковую панель, сворачивающуюся влево?
2
2209 / 755 / 207
Регистрация: 02.02.2012
Сообщений: 3,656
Записей в блоге: 2
29.08.2014, 17:52  [ТС] 3
Два вопроса.
Подсказку можно реализовать в Инспекторе объектов, без кода?
Ошибка:
C++ (Qt)
1
[C++ Error] Products.cpp(53): E2451 Undefined symbol 'LineTypeAdd'
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
29.08.2014, 18:02 4
Цитата Сообщение от Dimonick Посмотреть сообщение
Подсказку можно реализовать в Инспекторе объектов, без кода?
Нет, такую, как я показал (стандартную системную) - нельзя.
Цитата Сообщение от Dimonick Посмотреть сообщение
Undefined symbol 'LineTypeAdd'
В моем коде ничего подобного нет, смотри внимательно, чьи посты читаешь.
1
2209 / 755 / 207
Регистрация: 02.02.2012
Сообщений: 3,656
Записей в блоге: 2
29.08.2014, 18:33  [ТС] 5
Подсказки нет.
Пример jnrtnr.jpg
Цитата Сообщение от UI Посмотреть сообщение
Сама панель - вот так:
Боковая панель
Можно код на С++?
Миниатюры
Реализация выдвижной панели слева  
0
Почемучка)
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
29.08.2014, 19:38 6
На сколько я помню - у EM_SETCUEBANNER есть нюансы ( требования к манифесту/ОС Windows XP)
я бы советовал банально просто серым текстом всё это реализовывать...и возвращать и очищать при клике с проверкой
Миниатюры
Реализация выдвижной панели слева  
0
2209 / 755 / 207
Регистрация: 02.02.2012
Сообщений: 3,656
Записей в блоге: 2
29.08.2014, 20:03  [ТС] 7
Ddv122, Этого я и хочу добиться.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
29.08.2014, 21:09 8
Цитата Сообщение от Dimonick Посмотреть сообщение
Этого я и хочу добиться.
Ну, тогда вот тебе решение через класс-перехватчик:

Этот код надо добавить прямо перед классом формы в hpp-файле.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
namespace Cue_Edit // перед классом формы
{
    class TEdit : public Stdctrls::TEdit
    {
        typedef Stdctrls::TEdit inherited;
 
    private:
        void __fastcall DrawIt()
        {
            if (Text.IsEmpty())
            {
                Font->Color = clLtGray;
                Text = CueBanner;
            }
        }
 
    protected:
        DYNAMIC void __fastcall DoEnter(void)
        {
            inherited::DoEnter();
            if (Font->Color == clLtGray)
            {
                Clear();
                Font->Color = clWindowText;
            }
        }
 
        DYNAMIC void __fastcall DoExit(void)
        {
            inherited::DoExit();
            DrawIt();
        }
 
    public:
        String CueBanner;
 
        virtual void __fastcall Update(void)
        {
            inherited::Update();
            DrawIt();
        }
 
        __fastcall virtual TEdit(Classes::TComponent* AOwner)
            : Stdctrls::TEdit(AOwner)
        {
        }
    };
}
#define TEdit Cue_Edit::TEdit
, больше ничего менять не надо. А для того, чтобы задать, какой будет подсказка - для каждого конкретного Edit-а сделай:
C++
1
2
3
4
5
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  Edit1->CueBanner = "hello";
  Edit1->Update(); // Это - чтобы сразу отобразить пустое поле ввода с подсказкой
}
4
Практикантроп
4826 / 2718 / 526
Регистрация: 23.09.2011
Сообщений: 5,777
29.08.2014, 21:35 9
Вообще-то такую задумку не сложно организовать обычными (штатными) средствами. Timer, MouseMove например.
Вложения
Тип файла: rar 41.RAR (159.5 Кб, 50 просмотров)
3
2209 / 755 / 207
Регистрация: 02.02.2012
Сообщений: 3,656
Записей в блоге: 2
29.08.2014, 22:35  [ТС] 10
Цитата Сообщение от UI Посмотреть сообщение
Этот код надо добавить прямо перед классом формы в hpp-файле.
И что должно произойти?

Пример прикрепил. Или что бы выдвигалась форма.
Вложения
Тип файла: zip capture-1.zip (1.62 Мб, 31 просмотров)
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
30.08.2014, 01:14 11
Цитата Сообщение от Dimonick Посмотреть сообщение
И что должно произойти?
Должна появиться подсказка на Edit-ах. И она появляется, заметь. Могу видео записать, ибо надоели мне посты "у тебя ничего не работает". Руки надо иметь, и голову... Но у тебя, видно, "всюду камешки" (С)... Стандартный EM_SETCUEBANNER ты запустить не смог, реализованный другим методом тоже не можешь. По второй ссылке есть код, реализующий выезжающую панель, но ты и этого не можешь сделать.

Писал бы пока что-то консольное, учился бы...

Цитата Сообщение от nick42 Посмотреть сообщение
Вообще-то такую задумку не сложно организовать обычными (штатными) средствами. Timer, MouseMove например
То есть, DockTabSet - это нестандартное средство? 3 строки кода, и выезжающая панель готова... Тебе приходится вручную сравнивать координаты и обрабатывать 5 событий. Так какое из этих средств - стандартное, а какое - костыль?
2
Практикантроп
4826 / 2718 / 526
Регистрация: 23.09.2011
Сообщений: 5,777
30.08.2014, 09:17 12
Цитата Сообщение от UI Посмотреть сообщение
Тебе приходится вручную сравнивать координаты и обрабатывать 5 событий
Ну, если воздержаться от употребления ярлыков (типа "костыль", "динозавры"), то... в сухом остатке имеем всегда машинный код, который мы и скармливаем процессору. А тому, вообще говоря, по барабану: на Паскале была изначально программа написана, на Прологе или средствами какой-то мощной студии. Все эти студии - лишь для удобства программистов. В моем примере, конечно, много лишних телодвижений; DockTabSet - это инструмент более современных платформ. Исполняемый код (тот, что - процессору) в объеме 370 кб. Эмбаркадеро с DockTabSet выдаст "на гора" гораздо больше. В моем понимании всё то, что "сверх" - просто силос.
Но все это не значит, разумеется, что я категорический противник новизны в средствах и методах. Просто предложил вариант реализации (а их может быть и больше, чем два).
2
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
30.08.2014, 16:52 13
Цитата Сообщение от nick42 Посмотреть сообщение
имеем всегда машинный код, который мы и скармливаем процессору. А тому, вообще говоря, по барабану
Ему то по барабану, а вот программисту которому нужно будет обслуживать код- нет, ведь возможно вам же придется в нем ковыряться, при возникновении необходимости что-то модифицировать/добавить.
0
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
31.08.2014, 00:49 14
UI, а чего в
Цитата Сообщение от UI Посмотреть сообщение
hpp-файле
, а не в обычном h-файле?
0
31.08.2014, 00:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.08.2014, 00:49
Помогаю со студенческими работами здесь

Подключение выдвижной площадки DVD привода к Arduino
Появилась необходимость управления выдвижной площадкой ДВДишника при помощи имеющейся в наличии...

Выдвижной и задвижной блок при нажатии на разные ссылки
Есть небольшой блок div который по умолчанию скрыт. Есть 2 ссылки, одна на странице а другая в...

Как в Eclipse закрепить окно для консоля слева в столбик, а то постоянно ставлю его слева, потом перезахожу и
оно снова внизу?

Кто-нибудь сам менял шариковые направляющие у выдвижной полочки клавиатуры в компьютерном столе?
Меня интересует, как вы добивались ровного расположения 4 металлических пластинок для крепления...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru