效果图:
原先不知道,弄了半天都改不了RzSplitter.Orientation = orHorizontal / orVertical
然后去查该组件的源代码,原来Orientation不是在RzSplit单元定义的,而是在RzCommon这个单元,uses它后,一切正常了。
RzCommon Unit
//...
type
TAlignmentVertical = ( avTop, avCenter, avBottom ); TBlinkState = ( bsOn, bsOff ); TTextStyle = ( tsNormal, tsRaised, tsRecessed, tsShadow );
TOrientation = ( orHorizontal, orVertical ); //此处
TBarStyle = ( bsTraditional, bsLED, bsGradient );
TLineStyle = ( lsNone, lsFlat, lsGroove, lsBump );
//Button1 的 OnClick事件
procedure TForm1.Button1Click(Sender: TObject);
var
w, h: Integer;
begin
w := Ceil((RzSplitter1.UpperLeft.Pane.Height / RzSplitter1.Height) * RzSplitter1.Width); //width
h := Ceil((RzSplitter1.UpperLeft.Pane.Width / RzSplitter1.Width) * RzSplitter1.Height); //height
if RzSplitter1.Orientation = orHorizontal then
begin
RzSplitter1.Orientation := orVertical;
RzSplitter1.UpperLeft.Pane.Height := h;
RzSplitter1.Position := RzSplitter1.UpperLeft.Pane.Height;
Button1.Caption := 'Vertical (垂直铺设)';
end
else
begin
RzSplitter1.Orientation := orHorizontal;
RzSplitter1.UpperLeft.Pane.Width := w;
RzSplitter1.Position := RzSplitter1.UpperLeft.Pane.Width;
Button1.Caption := 'Horizontal (水平铺设)';
end; end;