是否有Delphi的滑动(动画)面板组件?
例如,它可以在Raize Components中找到(左侧面板带有"Hot Spot"或hide/show按钮).
我不需要一个可调整大小的面板,而是一个可以从左到右水平平滑滑动的面板+有一个隐藏/显示按钮(如果没有那个按钮,这不是什么大问题).
谢谢!
我想创建一个从TPanel派生的自定义控件,其中包含一个图像和一堆其他控件.编写代码后,我的程序中有一些奇怪的行为.我意识到一些应该在TDisplay.Resize(override)中初始化的变量从未被初始化,因为从未执行过Resize.
为了"解决它",我在一个表单上放了一个按钮并调用了LoadSample函数,该函数调用ClientHeight,它第一次调用Resize!
constructor TDisplay.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Ready := FALSE;
Parent := Owner as TWinControl;
Width := 200;
Height := 86;
Color := clSilver;
Caption := '';
DoubleBuffered:= TRUE;
InternalDisplay:= TImage32.Create(Self);
with Display DO
begin
Parent := Self;
Bitmap.Width := 1;
Bitmap.Height := 1;
RepaintMode := rmOptimizer;
Align := alClient;
SetupBitmap(TRUE, clBlack32);
Visible := TRUE;
OnMouseDown := DMouseDown;
end;
...
end;
Run Code Online (Sandbox Code Playgroud)
更新:
在我在运行时手动调整表单(控件)之前,InternalDisplay也不会与其父级大小对齐.只有这样它才会按照它应该采取的行动(与alClient保持一致).
更新2:
Resize声明如下:procedure Resize; 覆盖;
更新3:
我从我的construnctor中删除了ClientHeight行并将其移到此处:
procedure TDisplay.LoadSample(VAR Obj: TMySample; CONST bReleaseOnExit: boolean)
begin
ClientHeight; <--------- …Run Code Online (Sandbox Code Playgroud)