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

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

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

Студворк — интернет-сервис помощи студентам
Как реализовать выдвижную панель слева - будущий поиск для DBGrid?
На форму кинул с ActionManager1 кнопку, при нажатии которой, вылазила бы панель поиска.
Как сделать пропадающую надпись с edit после активации курсора в нем?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.08.2014, 16:50
Ответы с готовыми решениями:

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

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

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

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

Сама панель - вот так:
Как сделать боковую панель, сворачивающуюся влево?
2
 Аватар для Dimonick
2210 / 755 / 208
Регистрация: 02.02.2012
Сообщений: 3,656
Записей в блоге: 2
29.08.2014, 17:52  [ТС]
Два вопроса.
Подсказку можно реализовать в Инспекторе объектов, без кода?
Ошибка:
C++ (Qt)
1
[C++ Error] Products.cpp(53): E2451 Undefined symbol 'LineTypeAdd'
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,904
Записей в блоге: 12
29.08.2014, 18:02
Цитата Сообщение от Dimonick Посмотреть сообщение
Подсказку можно реализовать в Инспекторе объектов, без кода?
Нет, такую, как я показал (стандартную системную) - нельзя.
Цитата Сообщение от Dimonick Посмотреть сообщение
Undefined symbol 'LineTypeAdd'
В моем коде ничего подобного нет, смотри внимательно, чьи посты читаешь.
1
 Аватар для Dimonick
2210 / 755 / 208
Регистрация: 02.02.2012
Сообщений: 3,656
Записей в блоге: 2
29.08.2014, 18:33  [ТС]
Подсказки нет.
Пример jnrtnr.jpg
Цитата Сообщение от UI Посмотреть сообщение
Сама панель - вот так:
Боковая панель
Можно код на С++?
Миниатюры
Реализация выдвижной панели слева  
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
29.08.2014, 19:38
На сколько я помню - у EM_SETCUEBANNER есть нюансы ( требования к манифесту/ОС Windows XP)
я бы советовал банально просто серым текстом всё это реализовывать...и возвращать и очищать при клике с проверкой
Миниатюры
Реализация выдвижной панели слева  
0
 Аватар для Dimonick
2210 / 755 / 208
Регистрация: 02.02.2012
Сообщений: 3,656
Записей в блоге: 2
29.08.2014, 20:03  [ТС]
Ddv122, Этого я и хочу добиться.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,904
Записей в блоге: 12
29.08.2014, 21:09
Цитата Сообщение от 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
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
29.08.2014, 21:35
Вообще-то такую задумку не сложно организовать обычными (штатными) средствами. Timer, MouseMove например.
Вложения
Тип файла: rar 41.RAR (159.5 Кб, 50 просмотров)
3
 Аватар для Dimonick
2210 / 755 / 208
Регистрация: 02.02.2012
Сообщений: 3,656
Записей в блоге: 2
29.08.2014, 22:35  [ТС]
Цитата Сообщение от UI Посмотреть сообщение
Этот код надо добавить прямо перед классом формы в hpp-файле.
И что должно произойти?

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

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

Цитата Сообщение от nick42 Посмотреть сообщение
Вообще-то такую задумку не сложно организовать обычными (штатными) средствами. Timer, MouseMove например
То есть, DockTabSet - это нестандартное средство? 3 строки кода, и выезжающая панель готова... Тебе приходится вручную сравнивать координаты и обрабатывать 5 событий. Так какое из этих средств - стандартное, а какое - костыль?
2
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
30.08.2014, 09:17
Цитата Сообщение от UI Посмотреть сообщение
Тебе приходится вручную сравнивать координаты и обрабатывать 5 событий
Ну, если воздержаться от употребления ярлыков (типа "костыль", "динозавры"), то... в сухом остатке имеем всегда машинный код, который мы и скармливаем процессору. А тому, вообще говоря, по барабану: на Паскале была изначально программа написана, на Прологе или средствами какой-то мощной студии. Все эти студии - лишь для удобства программистов. В моем примере, конечно, много лишних телодвижений; DockTabSet - это инструмент более современных платформ. Исполняемый код (тот, что - процессору) в объеме 370 кб. Эмбаркадеро с DockTabSet выдаст "на гора" гораздо больше. В моем понимании всё то, что "сверх" - просто силос.
Но все это не значит, разумеется, что я категорический противник новизны в средствах и методах. Просто предложил вариант реализации (а их может быть и больше, чем два).
2
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
30.08.2014, 16:52
Цитата Сообщение от nick42 Посмотреть сообщение
имеем всегда машинный код, который мы и скармливаем процессору. А тому, вообще говоря, по барабану
Ему то по барабану, а вот программисту которому нужно будет обслуживать код- нет, ведь возможно вам же придется в нем ковыряться, при возникновении необходимости что-то модифицировать/добавить.
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
31.08.2014, 00:49
UI, а чего в
Цитата Сообщение от UI Посмотреть сообщение
hpp-файле
, а не в обычном h-файле?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.08.2014, 00:49
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru