Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов) / 25 сообщений из 33, страница 1 из 2
25.09.2017, 11:37:24
    #39525677
kolio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
всем хэлёу!

в HTML + табличные процессоры типа jQwidgets сделать кастомный грид из набора элементов вообще не проблема - по сути переопределяешь рисовалку ячейки и вперед.

В DevExpress в cxGrid это тоже есть, но блин это же умереть можно сколько кода нужно написать для этого

Дело в том, что нужно вывести список документов с разными атрибутами (оправлено, доставлено, заполнено) + кнопки (просмотр, редактировать, клонировать) и всё это обладает логикой

Понятное дело, что просто грид не подходит по виду. Было бы круто если была бы возможность накидать в отдельный юнит(фрейм) компонентов на формочку и тупо его выводить вместо ячейки. Но увы я не знаю возможно ли такое.

Даже если сделать 10 панелек, которые отображать в зависимости от кол. документов можно - но это как мы понимаем делают только студенты. Хочется правильного решения.

Прошу помощи знатоков
...
Рейтинг: 0 / 0
25.09.2017, 12:19:13
    #39525709
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
В таких ситуациях надо в таблицу выводить общие для показа поля, а где-нибудь справа сделать вертикальный список дополнительных аттрибутов, которые заполнять при выделении того или иного документа (можно использовать от обычного трилиста до вертикал крида).
...
Рейтинг: 0 / 0
25.09.2017, 12:50:24
    #39525732
kolio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
Ответ не в тему
К заполнению документа вопрос вообще не относится. Надеюсь вы кликали ссылку и смотрели пример

интересует только кастомный вывод в ячейке грида
в ячейке будет отрисован заранее расставленный набор компонентов на отдельной форме(или панельке)

вопрос только в том, как этот набор всунуть в ячейку при вызове метода простым способом, не создавая каждый компонент динамически по отдельности через 200 строк исходника:

OnCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
...
Рейтинг: 0 / 0
25.09.2017, 12:54:01
    #39525734
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
kolio,

что мешает сделать невидимую панельку, положить туда что надо и в событии отрисовки ячейки рисовать ее на канвасе? Тем более грид это позволяет сделать (главное не забыть ADone в True в конце выставить).
...
Рейтинг: 0 / 0
25.09.2017, 13:08:01
    #39525754
kolio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
дело в том, что таких панелек может быть 1-100 шт в гриде
то есть мне по сути нужны её динамические "дети", а не её оригинал - в этом случае скорее всего пригодится реально отдельный класс в отдельном файле (наверное подойдет TCustomCellContent = class(TFrame))

ну и конечно же играет роль - клики по кнопочкам. То есть обработчик должен знать, что при клике на кнопочку нужно вызвать просмотр документа с ID = 100334

Ну допустим я динамически создал в OnCustomDrawCell фрейм, но как его заставить отрисоваться именно в канвасе ячейки - не знаю :( То есть канвас то доступен, но как именно туда всунуть эту панельку с кучей кнопок и текста - непонятно

а так же очень интересно, что делать когда компонент cxGrid узнает, что строк стало меньше - и он своё удалит, а как же динамически созданная панелька? её тоже непонятно кто будет free-кать. Ну допустим перед уменьшением строк в гриде я сделаю процедуру, которая будет чистить сама эти панельки из памяти. Например было 10 строк, а стало 8. То есть нужно грохнуть компонент с именем (например) CustomCellContent9, CustomCellContent10

Пока мысли только такие
...
Рейтинг: 0 / 0
25.09.2017, 13:48:08
    #39525786
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
Скриншот есть готового результата? А то вдруг окажется, что там банальные кнопочки разное количество надо -- а они через ButtonEdit делаются спокойно.
...
Рейтинг: 0 / 0
25.09.2017, 13:57:50
    #39525798
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
kolioв HTML + табличные процессоры типа jQwidgets сделать кастомный грид из набора элементов вообще не проблема - по сути переопределяешь рисовалку ячейки и вперед.
В DevExpress в cxGrid это тоже есть, но блин это же умереть можно сколько кода нужно написать для этогоЕсли имеется в виду табличка Products по ссылке - то подобный вид в cxGrid можно сделать без написания кода вообще
...
Рейтинг: 0 / 0
25.09.2017, 14:01:35
    #39525800
kolio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
Скрина нет. Я уже пробовал через ButtonEdit - не мой случай. То есть стандартными средствами не обойтись 100%
Нужно отобрази уж слишком вариативную панельку с логикой

увы пока, что не получается отрисовать фрейм на ячейке :(

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
procedure TForm1.FormCreate(Sender: TObject);
begin
  cust := TCustFrame.Create(self);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  cust.Free;
end;



ну и основное:
Код: pascal
1.
2.
3.
4.
5.
procedure TForm1.cxGrid1DBTableView1CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
  cust.PaintTo(ACanvas.Canvas, 0 ,0);
  adone := true;
end;



отображается белый квадрат и всё
...
Рейтинг: 0 / 0
25.09.2017, 14:05:22
    #39525805
kolio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
white_niggerЕсли имеется в виду табличка Products по ссылке - то подобный вид в cxGrid можно сделать без написания кода вообще

да, я рисовал, но! там нет возможности расставить собственные компоненты. Только то, что предлагают они. Да - там можно скрыть кнопочку - это максимум, но это делается через одноооо место. А чтобы на её месте отобразить например другую - вообще смутно представляю себе. В общем не хочу писать много - этот вариант пробовал - не понравился по многим причинам. Тот их конструктор "ячейки" не годится.
...
Рейтинг: 0 / 0
25.09.2017, 14:10:13
    #39525814
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
kolio,

Хотя бы в пейнте можно нарисовать то, что хочется видеть... А то до сих пор не понятно.
...
Рейтинг: 0 / 0
25.09.2017, 14:32:16
    #39525830
kolio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
ну так - бриблизительно накидал. Не факт, что будет в таком именно виде

в некоторых случаях текст внизу - не видно и вместо галочки, что-то другое
вверху номер документа + один из атрибутов, который не всегда есть
ну и кнопки с вариантами: (view + copy) или (edit)
ну и строка в средине тоже вариативная

всё это под конкретный тачскрин так, что уже буду на устройстве подбирать красоту расположения
...
Рейтинг: 0 / 0
25.09.2017, 14:32:21
    #39525831
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
JaDiХотя бы в пейнте можно нарисовать то, что хочется видеть... А то до сих пор не понятно.А судя по тому что ТС хочет отображать собственные компоненты - там грид вообще не причем :)
...
Рейтинг: 0 / 0
25.09.2017, 14:33:12
    #39525832
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
kolioну так - бриблизительно накидал.LayoutView - тебе в руки
...
Рейтинг: 0 / 0
25.09.2017, 15:19:18
    #39525849
kolio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
мне нужен грид в 1 колонку вот таких панелек

а LayoutView пока не пробовал на вкус. Сейчас по-изучаю. Спасибо за подсказку
...
Рейтинг: 0 / 0
25.09.2017, 15:27:25
    #39525853
kolio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
kolio,

пху, та пробовал я этот LayoutView - то о чём предлагали выше и о чём я писал тоже выше. Не подойдет это. Там набор только определенных вариантов типов компонентов + разметка меня не устраивает

Всё же хотелось бы 100% кастомную панель(в моём случае это TFrame) в ячейку
...
Рейтинг: 0 / 0
25.09.2017, 15:34:18
    #39525856
AJi
AJi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
Зачем вам вообще грид нужен?
...
Рейтинг: 0 / 0
25.09.2017, 15:42:16
    #39525861
kolio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
чтобы он заботился об всей каше связанной с отрисовкой списка
мне в принципе всё равно какой из DevExpress компонентов умеет такое :) просто я все демки пересмотрел - подобного по функционалу не нашел

Если сравнить это с Андроидом - там тоже есть адаптеры кастомных списков. Там тупо указал XML файл - который содержит разметку ячейки и натравил вьюху списка на этот адаптер - и всё. Можно рендерить хоть каждую ячейку с индивидуальным дизайном и логикой. Хоть целый зоопарк внутри каждой ячейки. Но увы в делфяке я такого не видел ни разу.
...
Рейтинг: 0 / 0
25.09.2017, 15:44:21
    #39525864
под ван
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
Так написано же на скрине ListView sample! Причём тут грид?
...
Рейтинг: 0 / 0
25.09.2017, 15:48:21
    #39525868
kolio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
Грид это тоже список только с одной колонкой. У вас есть дельные советы?
...
Рейтинг: 0 / 0
25.09.2017, 15:49:01
    #39525869
AJi
AJi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
Если у вас Tframe, то возьмите панельку, создавайте столько фреймов, сколько вам нужно и складывайте на панельку.
Ну или еще можно посмотреть CardView, но там как и везде - определенный набор компонентов.
...
Рейтинг: 0 / 0
25.09.2017, 15:54:57
    #39525873
kolio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
вариант со 100 панельками я уже думал. Но ведь все присутствующие понимают, что так уже стыдно делать. Это я мог лет 8 назад сделать, лишь бы сделать. А что делать если будет 200 строк? в 200 панелек рендерить фреймы? Ну фигня, согласитесь. Мне бы отрендерить уже по сути готовый компонент в ячейку, а дальше я сам.
Просто я не знаю как именно отрисовать конкретный объект на конкретном canvas. Увы кроме белого квадрата ничего нет
...
Рейтинг: 0 / 0
25.09.2017, 16:05:05
    #39525883
AJi
AJi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
Почитайте тогда вот https://www.devexpress.com/Support/Center/Question/Details/DQ4230/problems-with-creating-my-own-custom-editor . Может быть поможет.
...
Рейтинг: 0 / 0
25.09.2017, 16:17:18
    #39525888
kolio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
Там описывается как сделать кастомный редактор
но как мы знаем активным редактором может быть только 1
то есть как только мы отредактировали - ячейка перейдет в режим "просто отобрази значение" и кастомный "редактор" исчезнет - тоже увы не очень

Казалось бы - ну ведь куча примеров когда нужен список, но не обычный, а вот как я нарисовал. Странно, что еще производители компонентов до такого не дошли. Вернее devExpress уже имеет, но очень заточен под видение из разрабов

Увы вопрос задать не получится на devExpress форуме - у них 1 ответ "введите номер лицензии у себя в профиле, а потом ответим"
...
Рейтинг: 0 / 0
25.09.2017, 16:21:36
    #39525891
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
kolio,

Подобный список можно и на простом трилисте сделать (две колонки с текстом в стеке друг на другом плюс одна растянутая колонка в две строчки с кнопками). Да, будет не слишком красиво, но чем-то похожим.
...
Рейтинг: 0 / 0
25.09.2017, 16:37:58
    #39525901
kolio
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов)
та я понимаю, спасибо конечно за совет, но тут ситуация такова, что будут показывать программу людям, которые не скушают такое. Щас наверное буду колупаться всё же как отрисовать что либо на канвасе (слава богу хватает у них демок), а потом как отрисовать весь фрейм на чужом канвасе. Надеюсь поборю и пришлю результат
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Devexpress - панель с компонентами вместо ячейки (список в виде повторяющихся наборов) / 25 сообщений из 33, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]