У компоненты TcxSpinEdit нет возможности простым путём менять размеры кнопок.
Благодаря подсказке из этой темы на форуме sql.ruудалось решить проблему.
Вот как можно увеличить (изменить) размер кнопок у компоненты TcxSpinEdit
Добавляем в проект новый модуль, вот его код.
Теперь достаточно включить в USES (верхний, в тот, что в секции interface) этот модуль и размеры кнопок можно менять. только этот модуль (uSpinEditHack) должен быть последним в списке.
Ссылка на источник
https://www.devexpress.com/Support/Center/Question/Details/Q580764
Если без хака, то работают такие странные условия.
Если менять значение всех четырёх кнопок, то изменение размера кнопок работает работает
если только двух, то не работает.
Есть зависимость размера кнопок от размера самой компоненты cxSpinEdit. Т.е. больше какого-то определённого значения размер кнопок не установить. Т.е. нужно отключить AutoSize, сделать высоту компоненты огромной и только тогда можно делать размеры кнопок побольше.
Благодаря подсказке из этой темы на форуме sql.ruудалось решить проблему.
Вот как можно увеличить (изменить) размер кнопок у компоненты TcxSpinEdit
Добавляем в проект новый модуль, вот его код.
unit uSpinEditHack;interfaceuses cxEdit, cxSpinEdit, cxGraphics, Windows, Classes;// этот модуль должен быть последним в верхнем списке USEStype TMySpinEditViewData = class(TcxSpinEditViewData)protectedprocedure CalculateButtonsBounds(ACanvas: TcxCanvas; AViewInfo: TcxCustomEditViewInfo; var ButtonsRect: TRect); override;end; TMySpinEditProperties = class(TcxSpinEditProperties)publicclassfunction GetViewDataClass: TcxCustomEditViewDataClass; override;end; TMySpinEdit = class(TcxSpinEdit)publicclassfunction GetPropertiesClass: TcxCustomEditPropertiesClass; override;end; TcxSpinEdit = class(TMySpinEdit);implementationuses uShares;{ TMySpinEdit }classfunction TMySpinEdit.GetPropertiesClass: TcxCustomEditPropertiesClass;begin Result := TMySpinEditProperties;end;{ TMySpinEditProperties }classfunction TMySpinEditProperties.GetViewDataClass: TcxCustomEditViewDataClass;begin Result := TMySpinEditViewData;end;{ TMycxSpinEditViewData }procedure TMySpinEditViewData.CalculateButtonsBounds(ACanvas: TcxCanvas; AViewInfo: TcxCustomEditViewInfo; var ButtonsRect: TRect);beginwith AViewInfo.ButtonsInfo[cxSpinForwardButtonIndex] dobegin Bounds := Rect(ButtonsRect.Right - uShares.iSpinEditButtonSize , ButtonsRect.Top, ButtonsRect.Right, ButtonsRect.Bottom); ButtonsRect.Right := Bounds.Left + 200;end;with AViewInfo.ButtonsInfo[cxSpinBackwardButtonIndex] dobegin Bounds := Rect(ButtonsRect.Left, ButtonsRect.Top, ButtonsRect.Left + uShares.iSpinEditButtonSize, ButtonsRect.Bottom); ButtonsRect.Left := Bounds.Right - 200;end;end;end.{iSpinEditButtonSize - это глобальная переменная, а где-то в другой форме меняем размер кнопок и присваиваем его этой переменной}
Теперь достаточно включить в USES (верхний, в тот, что в секции interface) этот модуль и размеры кнопок можно менять. только этот модуль (uSpinEditHack) должен быть последним в списке.
Ссылка на источник
https://www.devexpress.com/Support/Center/Question/Details/Q580764
Если без хака, то работают такие странные условия.
Если менять значение всех четырёх кнопок, то изменение размера кнопок работает работает
cxSpinEdit1.Properties.Buttons[0].Width := 42; cxSpinEdit1.Properties.Buttons[1].Width := 42;
если только двух, то не работает.
Есть зависимость размера кнопок от размера самой компоненты cxSpinEdit. Т.е. больше какого-то определённого значения размер кнопок не установить. Т.е. нужно отключить AutoSize, сделать высоту компоненты огромной и только тогда можно делать размеры кнопок побольше.