Quantcast
Channel:
Viewing all articles
Browse latest Browse all 74

Изменить размер кнопок у cxSpinEdit

$
0
0
У компоненты TcxSpinEdit нет возможности простым путём менять размеры кнопок.
Благодаря подсказке из этой темы на форуме 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, сделать высоту компоненты огромной и только тогда можно делать размеры кнопок побольше.

Viewing all articles
Browse latest Browse all 74

Trending Articles


FORECLOSURE OF REAL ESTATE MORTGAGE


HOY PANGIT, MAGBAYAD KA!


Girasoles para colorear


Presence Quotes – Positive Quotes


Long Distance Relationship Tagalog Love Quotes


Tropa Quotes


“Mali man na ikaw ay ibigin ko, akoy iibig padin sayo”


RE: Mutton Pies (frankie241)


Hato lada ym dei namar ka jingpyrshah jong U JJM Nichols Roy (Bah Joy) ngin...


EASY COME, EASY GO


UPDATE SC IDOL: TWO BECOME ONE


Pokemon para colorear


Sapos para colorear


Love Quotes Tagalog


Two timer Sad tagalog Love quotes


Top 7 Lies of Boys


Re:Mutton Pies (lleechef)


Ka longiing longsem kaba skhem bad kaba khlain ka pynlong kein ia ka...


Vimeo 10.7.0 by Vimeo.com, Inc.


Vimeo 10.7.1 by Vimeo.com, Inc.