Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 TcxGrid: как вручную менять ширину ячейки данных вью, если заголовок не отображается?  [new]
ъъъъъ
Member

Откуда:
Сообщений: 795
В объекте TcxGrid есть три вложенных TcxGridLevel's, в каждом - свой TcxGridTableView.
Вью верхнего и среднего уровней (1 и 2) не отображают заголовки данных, только сами данные. Вью нижнего уровня (3) - отображают и заголовки, и данные.

Вручную изменить ширину столбцов уровня 3 я могу мышкой, "потянув" за границу столбцов в заголовке.

Вручную изменить ширину столбцов уровней 1 и 2 я не могу, так как не отображаются заголовки. А очень хочется менять ширину - например, методом перетаскивания вертикальных границ ячеек (вертикальных линий "решетки").
Нет ли какого простого способа добиться желаемого?

Спасибо.

К сообщению приложен файл. Размер - 11Kb
15 июн 20, 22:41    [22151278]     Ответить | Цитировать Сообщить модератору
 Re: TcxGrid: как вручную менять ширину ячейки данных вью, если заголовок не отображается?  [new]
Сергей Фролов
Member

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

Отвечу традиционно, как принято на российских форумах )))
Что-то пошло не так. Эргономика осталась где-то в другой реальности с такими гридами. Может просто переосмыслить и переписать GUI?

P.S. Пока писал автозамена предлагала вместо «гридами» - «грибами». Очень в тему )))
15 июн 20, 23:34    [22151291]     Ответить | Цитировать Сообщить модератору
 Re: TcxGrid: как вручную менять ширину ячейки данных вью, если заголовок не отображается?  [new]
ъъъъъ
Member

Откуда:
Сообщений: 795
Сергей Фролов,

естественно, я рассчитывал, что будет предложено переработать архитектуру/эргономику/цветовую гамму.

Обязательно вернёмся к этому вопросу - самому хочется! :)
15 июн 20, 23:40    [22151292]     Ответить | Цитировать Сообщить модератору
 Re: TcxGrid: как вручную менять ширину ячейки данных вью, если заголовок не отображается?  [new]
DimaBr
Member

Откуда:
Сообщений: 11710
На коленке
Картинка с другого сайта.
+
type
THack=class(TcxCustomGridTableItem);

var C: THack;
    L: integer;

procedure TForm1.cxGrid1TableView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var H: TcxCustomGridHitTest;
begin
  H := cxGrid1TableView1.GetHitTest(X,Y);
  if H is TcxGridRecordCellHitTest then begin
    if (X > TcxGridRecordCellHitTest(H).ViewInfo.Bounds.Right-3)
      then cxGrid1TableView1.Site.Cursor := crHSplit
      else cxGrid1TableView1.Site.Cursor := crDefault;
    if C <> nil then C.Width := X-L;
  end;
end;

procedure TForm1.cxGrid1TableView1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var H: TcxCustomGridHitTest;
begin
  H := cxGrid1TableView1.GetHitTest(X,Y);
  if H is TcxGridRecordCellHitTest then begin
    if (X > TcxGridRecordCellHitTest(H).ViewInfo.Bounds.Right-3)then begin
      C := THack(TcxGridRecordCellHitTest(H).Item);
      L := TcxGridRecordCellHitTest(H).ViewInfo.Bounds.Left;
    end;
  end;
end;

procedure TForm1.cxGrid1TableView1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  C := nil;
end;
16 июн 20, 01:07    [22151300]     Ответить | Цитировать Сообщить модератору
 Re: TcxGrid: как вручную менять ширину ячейки данных вью, если заголовок не отображается?  [new]
ъъъъъ
Member

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

спасибо!
16 июн 20, 03:38    [22151321]     Ответить | Цитировать Сообщить модератору
 Re: TcxGrid: как вручную менять ширину ячейки данных вью, если заголовок не отображается?  [new]
Кроик Семён
Member

Откуда: СПб --> Dortmund
Сообщений: 6621
DimaBr,

без шуток, это надо запатентовать
16 июн 20, 11:04    [22151433]     Ответить | Цитировать Сообщить модератору
 Re: TcxGrid: как вручную менять ширину ячейки данных вью, если заголовок не отображается?  [new]
DimaBr
Member

Откуда:
Сообщений: 11710
Кроик Семён
DimaBr,

без шуток, это надо запатентовать

20 лет никому не было нужно и вот опять
16 июн 20, 13:15    [22151550]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить