Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3

Пытаюсь внедрить свойство DrawingStyle в класс TListView

17.07.2015, 12:03. Показов 2039. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!!!
Ребята, подскажите, по такому вопросу пытаюсь внедрить Пытаюсь внедрить свойство DrawingStyle в класс TListView.
Но проблема в том, что мало опыта в таких манипуляциях как внедрение дополнительного функционала в классы.

Вот нашёл пример

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Добавляем вот это
namespace MyNamespace
{
    class TDBGrid : public Dbgrids::TDBGrid
    {
    protected:
        DYNAMIC void __fastcall ColWidthsChanged(void)
        {
            Dbgrids::TDBGrid::ColWidthsChanged(); // Вызываем метод предка, т.е., Дельфиским синтаксисом - Inherited
            DefaultRowHeight = 50;
        }
 
    public:
        inline __fastcall virtual TDBGrid(Classes::TComponent* AOwner) :
            Dbgrids::TDBGrid(AOwner) {}
        __property DefaultRowHeight; // Теперь доступ к свойству - общий
    };
};
#define TDBGrid MyNamespace::TDBGrid
На основе этого попытался сделать для себя

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
namespace MyListView
{
    class TListView : public ComCtrls::TListView
    {
    
 
    //а что здесь писать?
 
             public:
        inline __fastcall virtual TListView(Classes::TComponent* AOwner) :
            ComCtrls::TListView(AOwner) {}
        __property DrawingStyle; // Теперь доступ к свойству - общий
    };
};
#define TListView MyListView::TListView
Вот это, что я смог сделать, а как дальше к сожаление додумать не могу.
Заранее благодарен, кто поможет
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.07.2015, 12:03
Ответы с готовыми решениями:

TListView и свойство Data
Добрый день. У меня вопрос следующего содержания: Формирую список TListView на основании данных полученных из базы данных. В списке...

компенсатор ругается когда пытаюсь внедрить defualt and normal inline
//pointer.h #ifndef POINTER_H #define POINTER_H class Point { private: double Xcoord; double Ycoord;

Внедрить свой класс в Windows Forms приложение
У меня есть класс, который я писал для консольного приложения, назовем его класс "B". Я хочу интегрировать его в свое приложение...

24
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33479 / 21577 / 8250
Регистрация: 22.10.2011
Сообщений: 37,040
Записей в блоге: 12
20.07.2015, 11:27
Лучший ответ Сообщение было отмечено Sasha как решение

Решение

Студворк — интернет-сервис помощи студентам
Читаем тут: LVCOLUMN structure
The alignment of the leftmost column is always LVCFMT_LEFT; it cannot be changed
Workaround: сделай первым пустой столбик, шириной в 0 пикселей, и назначай оставшимся столбцам любые выравнивания, на них ограничения не будет.
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
20.07.2015, 11:58  [ТС]
Цитата Сообщение от volvo Посмотреть сообщение
Workaround: сделай первым пустой столбик, шириной в 0 пикселей, и назначай оставшимся столбцам любые выравнивания, на них ограничения не будет.
volvo, странно что такие не доработки в компонентах, но всё равно спасибо.
Сделал так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
ListView1->Columns->Add();
    ListView1->Columns->Add();
    ListView1->Columns->Add();
    ListView1->Columns->Items[0]->Width = 0;
    ListView1->Columns->Items[1]->Caption = L"Состояние сети";
    ListView1->Columns->Items[1]->Width = 100;
    ListView1->Columns->Items[1]->Alignment = taCenter;
    ListView1->Columns->Items[2]->Caption = L"Дата/Время";
    ListView1->Columns->Items[2]->Width = 128;
    ListView1->Columns->Items[2]->Alignment = taCenter;
    ListView1->DrawingStyle = gdsGradient;
    ListView1->GradientStartColor = clBlue;
    ListView1->GradientEndColor = clAqua;
Работает пока нормально
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33479 / 21577 / 8250
Регистрация: 22.10.2011
Сообщений: 37,040
Записей в блоге: 12
20.07.2015, 12:00
Компоненты-то при чем? Это вообще-то MSDN, в системе недоработки.
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
20.07.2015, 12:27  [ТС]
Цитата Сообщение от volvo Посмотреть сообщение
Компоненты-то при чем? Это вообще-то MSDN, в системе недоработки.
А есть система в которой этого "бага" нет? И в которой нормально отрисовывается первый заголовок ListView?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33479 / 21577 / 8250
Регистрация: 22.10.2011
Сообщений: 37,040
Записей в блоге: 12
20.07.2015, 12:34
Нет, это во всех Windows такая "фича". Всё, что использует common controls, будет вести себя именно так. Кстати, Лазарус, который использует свой набор виджетов вместо виндовых классов, прекрасно позволяет обойтись безо всяких Workaround-ов:
Миниатюры
Пытаюсь внедрить свойство DrawingStyle в класс TListView  
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.07.2015, 12:34

Пытаюсь из своего класса CMultiplication передать значение в класс документа CMathematicsDoc
Пытаюсь из своего класса CMultiplication передать значение в класс документа CMathematicsDoc: файл MathematicsDoc.h ... class...

Производный класс не наследует свойство базового
Для того, чтобы TableLayoutPanel не мерцал, создал класс, который наследует TableLayoutPanel и во конструкторе прописал this.DoubleBuffered...

Класс не наследует свойство, если там ссылка на другой объект
Есть вот такой класс: namespace controllers\admin; use controllers\admin\DefaultController; class AuthController extends...

Добавили в класс новое свойство - добавился новый RadioButton на форму
Я добавляю и описываю еще одно свойство в классе и при этом у меня автоматически должен измениться пользовательский интерфейс. должна...

Как добавить компоненту новое свойство используя класс-перехватчик?
Всем здравствуйте. Ознакомился с содержимым статьи volvohttps://www.cyberforum.ru/cpp-builder/thread1368916.html. Статья очень...


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru