ple*_*103 4 delphi delphi-2010
这是我的代码,用于"动画" TPanel鼠标光标悬停在它上面的时间.我还有一个代码块来使它无法动画.
procedure Tmain.pStarting1MouseEnter(Sender: TObject);
begin
if sender = pStarting1 then pStarting1.BevelInner := bvLowered;
if sender = pStarting2 then pStarting2.BevelInner := bvLowered;
if sender = pStarting3 then pStarting3.BevelInner := bvLowered;
if sender = pStarting4 then pStarting4.BevelInner := bvLowered;
if sender = pStarting5 then pStarting5.BevelInner := bvLowered;
if sender = pStarting6 then pStarting6.BevelInner := bvLowered;
if sender = pStarting7 then pStarting7.BevelInner := bvLowered;
if sender = pStarting8 then pStarting8.BevelInner := bvLowered;
if sender = pStarting9 then pStarting9.BevelInner := bvLowered;
end;
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,它非常重复,因为我有另外27 TPanel秒的动画,这将意味着另外27行重复代码.那么有什么方法可以优化它?
我还尝试将该代码块放入一个单独的过程(在同一单元中).但德尔福告诉我,这sender是未申报的.
And*_*and 11
if Sender is TPanel then
TPanel(Sender).BevelInner := bvLowered;
Run Code Online (Sandbox Code Playgroud)
或者,如果你确定它Sender总是一个TPanel,简单地说
(Sender as TPanel).BevelInner := bvLowered;
Run Code Online (Sandbox Code Playgroud)
或者(如果你真的一定)
TPanel(Sender).BevelInner := bvLowered;
Run Code Online (Sandbox Code Playgroud)