Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Заголовок TCategoryPanelGroup  [new]
фываенг
Member

Откуда:
Сообщений: 38
Всем привет!
Компонент TCategoryPanelGroup
Можно ли добавить вот в это место к примеру кнопку, которая оставалась бы на месте после открытия?
3 окт 18, 16:52    [21694333]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
фываенг
Member

Откуда:
Сообщений: 38


К сообщению приложен файл. Размер - 23Kb
3 окт 18, 16:53    [21694337]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
фываенг
Member

Откуда:
Сообщений: 38
Ап
5 окт 18, 15:00    [21696450]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 1948
Можно
5 окт 18, 15:57    [21696543]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
фываенг
Member

Откуда:
Сообщений: 38
white_nigger,

Как?
5 окт 18, 15:59    [21696547]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 1948
Программист нужен. Или кто-то, кто способен посмотреть в исходники компонента и понять какие классы и методы надо перекрыть
5 окт 18, 16:03    [21696555]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
фываенг
Member

Откуда:
Сообщений: 38
white_nigger, а ты программист?
Вот что я нашёл, вот эти методы
Там на китайском парень пишет:
先看ExtCtrls单元中的TCustomCategoryPanelGroup声明部分:(Это означает Сначала просмотрите раздел декларации TCustomCategoryPanelGroup в модуле ExtCtrls:)
И он показывает этот раздел, скриншотами
Потом показывает (根据以上,在单元文件中声明如下: ----> Согласно вышеизложенному, объявите в файле блока следующее) как он перегружает два метода в своей программе, на скриншоте, а потом пишет реализацию этих методов (уже не на скриншоте, а текстом)

Я не пойму что надо написать чтобы туда кнопку добавить
5 окт 18, 16:09    [21696559]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
фываенг
Member

Откуда:
Сообщений: 38
white_nigger,

http://ymg97526.blog.163.com/blog/static/1736581602011618101112386/
5 окт 18, 16:09    [21696560]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
фываенг
Member

Откуда:
Сообщений: 38
white_nigger,

Ааа, слушай, я кажется догадался
5 окт 18, 16:14    [21696563]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
фываенг
Member

Откуда:
Сообщений: 38
white_nigger
Программист нужен. Или кто-то, кто способен посмотреть в исходники компонента и понять какие классы и методы надо перекрыть

Спасибо за вот это сообщение, потому что я тупил
5 окт 18, 16:15    [21696565]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 1948
фываенг
Спасибо за вот это сообщение, потому что я тупил
Краем глаза глянул в китайщину - вроде по делу там. +Тебе ещё обработку мыши перекрыть надо будет. А вообще там не так много кода. Можешь вообще себе перетащить и наживую поправить
5 окт 18, 16:37    [21696594]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
DimaBr
Member

Откуда:
Сообщений: 10781
Китайский код делает совершенно другое. А именно - избавляется от полоски при закрытой группе.

К сообщению приложен файл. Размер - 7Kb
5 окт 18, 21:32    [21696814]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
DimaBr
Member

Откуда:
Сообщений: 10781
Имитация TCategoryPanelGroup заняла 5 минут
+
rocedure TForm1.Panel3Click(Sender: TObject);
var pHeader,pGroup: TPanel;
begin
  pHeader := TPanel(Sender);
  pGroup := TPanel(pHeader.Parent);
  if pGroup.Height = pHeader.Height+1 then begin
    pGroup.Height := pGroup.Tag;
  end
  else begin
    pGroup.Tag := pGroup.Height;
    pGroup.Height := pHeader.Height+1;
  end;
end;

Картинка с другого сайта.
5 окт 18, 22:15    [21696832]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
rgreat
Member

Откуда:
Сообщений: 4587
DimaBr,

Картинка с другого сайта.

5 окт 18, 22:26    [21696839]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 1948
Китайский код делает именно то, что нужно для старта ТС. А именно показывает, что и как надо перекрывать, чтоб добавить что-то своё. В том числе отрисовку. Хотя изобретать страшные велосипеды тоже никто не запрещает
6 окт 18, 01:39    [21696895]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
DimaBr
Member

Откуда:
Сообщений: 10781
Все такие умные, только помочь никто не хочет
6 окт 18, 15:39    [21697031]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 1948
DimaBr
Все такие умные, только помочь никто не хочет
Для меня гораздо важнее научить человека самого думать и решать,чем совать ему левые готовые решения. Насмотрелся на нынешнее молодое поколение, которое без интернета и готовых решений не могут решить элементарных задач.
6 окт 18, 18:04    [21697081]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
фываенг
Member

Откуда:
Сообщений: 38
Думал думал, думал думал
И не понимаю, как правильно нужно написать на месте знаков вопросов
procedure TCategoryPanel.DrawHeaderBackground(ACanvas: TCanvas);
var
  Button: TButton;
begin
  Button := TButton.Create(?);
  Button.Parent := ?;
  Button.Left := 0;
  Button.Top := 0;

  inherited;
end;
8 окт 18, 15:56    [21698273]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
rgreat
Member

Откуда:
Сообщений: 4587
Self.
8 окт 18, 16:03    [21698283]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
фываенг
Member

Откуда:
Сообщений: 38
rgreat,

Спасибо, но рисуется кнопка не на заголовке
А внутри
Какой бы метод я не перегружал
8 окт 18, 16:19    [21698314]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
Док
Member

Откуда: Казань
Сообщений: 5875
фываенг
но рисуется кнопка не на заголовке

значит не тот родитель
8 окт 18, 16:50    [21698395]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
фываенг
Member

Откуда:
Сообщений: 38
Док,

Но я так понял что заголовок TCategoryPanel это часть самого класса TCategoryPanel?
8 окт 18, 17:07    [21698413]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
фываенг
Member

Откуда:
Сообщений: 38
это часть класса TCustomCategoryPanel?*
8 окт 18, 17:08    [21698416]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
DimaBr
Member

Откуда:
Сообщений: 10781
Сомневаюсь что вам вам самостоятельно удастся это реализовать
8 окт 18, 18:49    [21698534]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
DimaBr
Member

Откуда:
Сообщений: 10781
Смысл такой. TCategoryPanel - это окно, клиентская часть которого ограничена, на нём лежит прозрачное окно FPanelSurface, на которое и попадают все заброшенные компоненты.
Поместить компонент в НЕклиентскую часть окна (грубо говоря в заголовок окна) низзя.
Можно перехватить оконную функцию и самостоятельно рисовать кнопку, обрабатывать сообщения движения/нажатия/отпускания мыши.
Оно вам надо ?
8 окт 18, 19:47    [21698593]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Delphi Ответить