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

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

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

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

Откуда: Тула
Сообщений: 1949
Программист нужен. Или кто-то, кто способен посмотреть в исходники компонента и понять какие классы и методы надо перекрыть
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

Откуда: Тула
Сообщений: 1949
фываенг
Спасибо за вот это сообщение, потому что я тупил
Краем глаза глянул в китайщину - вроде по делу там. +Тебе ещё обработку мыши перекрыть надо будет. А вообще там не так много кода. Можешь вообще себе перетащить и наживую поправить
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

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

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

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

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

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

Откуда: Тула
Сообщений: 1949
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

Откуда:
Сообщений: 4588
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]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
DimaBr
Member

Откуда:
Сообщений: 10781
Чисто технически, набрал в поиске "delphi кнопка в заголовке окна", скачал компонент вот отсюда и вуаля

Картинка с другого сайта.
8 окт 18, 19:51    [21698598]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 1949
фываенг, можно взять китайский шаблон и добавить в отрисовку хидера отрисовку кнопки, с нужными наворотами, хоттреками и прочим блекджеком. Заодно потренируешься в обработке мышиных событий
9 окт 18, 02:59    [21698806]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
фываенг
Member

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

да вот видишь, я в каком методе кнопку не создаю, она появляется внутри, а не в заголовке

DimaBr
Можно перехватить оконную функцию и самостоятельно рисовать кнопку, обрабатывать сообщения движения/нажатия/отпускания мыши.


DimaBr, да, получается мне это и надо (Потому что мне в заголовок нужно ещё несколько разных картинок выводить)
Ты говоришь о TWinControl?
Я не могу использовать чьи-то готовые компоненты, такие как TCaptionButton

Честно говоря, я даже не знаю кто из вас прав, просто, white_nigger, ты так утверждаешь, может покажешь хотя бы
9 окт 18, 13:21    [21699197]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
DimaBr
Member

Откуда:
Сообщений: 10781
white_nigger предлагает говорит самое что и я.
Нужно самостоятельно нарисовать кнопку и отслеживать все действия над ней.
То есть это будет не кнопка-компонент, а иллюзия кнопки.
Будите это делать самостоятельно, или это будет сосредоточено в отдельном модуле и называться сторонним компонентом - выбор ваш Всё равно код будет аналогичным.

Повторяю, самый простой способ, кинуть панели на ScrollBox, написать 10 строчек кода и не изобретать велосипед
9 окт 18, 13:30    [21699216]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
фываенг
Member

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

Если честно немного не понял со скроллбоксом

А вот вывод нескольких картинок в заголовок? Его тоже нельзя осуществить?
9 окт 18, 13:42    [21699237]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
фываенг
Member

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

(С помощью Canvas)
9 окт 18, 13:43    [21699239]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 1949
фываенг, Что показать? Всё уже показано в компоненте. Шеврон слева в хидере CategoryPanel - по сути и есть кнопка. Ты же тыкаешь в него для раскрытия/сворачивания группы. Какая религия мешает продублировать ЭТО на твою собственную кнопку? Весь код уже написан. Смотри, изучай, пробуй
9 окт 18, 14:11    [21699288]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
DimaBr
Member

Откуда:
Сообщений: 10781
Сделайте так и не мучайтесь. И размещайте любые картинки, кнопки и всё что угодно
9 окт 18, 14:12    [21699290]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
фываенг
Member

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

Возможно ты неправильно понял, мне надо вот что
21698598
9 окт 18, 14:21    [21699304]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
DimaBr
Member

Откуда:
Сообщений: 10781
Картинка с другого сайта.
9 окт 18, 14:23    [21699307]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
фываенг
Member

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

И кнопка эта должна делать другие действия (Не сворачивание/разворачивание панели)

DimaBr, эх, тут ведь и суть то, использовать не что-то собственно написанное, а делфевское...
Потому что собственно написанное уже есть
9 окт 18, 14:28    [21699315]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 1949
фываенг
Возможно ты неправильно понял, мне надо вот что
21698598
Скорее ты не осилил мой пост. Ещё раз: одна кнопка в хидере уже есть и работает (шеврон). Что тебя останавливает от изучения её реализации? Добавь подобную со своей логикой. Если не способен - то смотри мой первый пост, про программиста
9 окт 18, 14:58    [21699360]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
фываенг
Member

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

да шеврон это не кнопка!
Это просто картинка такая
А кликнуть мы можем в любое место в заголовке
И он развернётся
10 окт 18, 13:11    [21700388]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
фываенг
Member

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

Вернее панелька развернётся
10 окт 18, 13:12    [21700390]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 1949
фываенг
Это просто картинка такая
А кликнуть мы можем в любое место в заголовке
И он развернётся. Вернее панелька развернётся
Ну так придётся-таки, несколько строк дописать в мышином обработчике. Работа программиста она таккая... И разбираться в чужом коде приходится и свой писать. Надеюсь пальцы не сотрёшь
10 окт 18, 15:55    [21700652]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
фываенг
Member

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

+ Не по теме
Ты читаешь рэп?


Вот Уайт, Ни44ер (YEAH-YEAH, fo'-fo'), ты говоришь так, как будто уверен на сто процентов что кнопку можно как то просто добавить в заголовок
Видишь, DimaBr дал ссылку на компонент, а там ваще столько всего
Самое смешное что ты говоришь что программист нужен, так и суть то форума в том, чтобы программист не был нужен
10 окт 18, 16:21    [21700712]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 29299

А ПРА ЧО ТОПЕГ?
А ХТО АФФТАР?

(с)

Posted via ActualForum NNTP Server 1.5

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

Откуда:
Сообщений: 38
Мимопроходящий,

А почему ты такой жадный и всё кроешь авторским правом?
10 окт 18, 16:37    [21700737]     Ответить | Цитировать Сообщить модератору
 Re: Заголовок TCategoryPanelGroup  [new]
DimaBr
Member

Откуда:
Сообщений: 10781
фываенг
так и суть то форума в том, чтобы программист не был нужен

Нет, суть форума в том чтобы помогать программистам, а не тем, кто не хочет разбираться в чужом коде
10 окт 18, 20:18    [21700973]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Delphi Ответить