我试图在delphi中按下按钮时,我会显示一个下拉面板,其中包含以下选项:
有谁知道如何使用VCL产生这种效果? 现在我有一个带有2个面板的表格,主要是总是显示并有一个侧面按钮,当我按下按钮时,侧面板显示,但我想产生效果。 谢谢
答案 0 :(得分:7)
我不太了解您的应用程序,包括透明度和其他内容。但是,我认为你必须在自己的某种循环中为你的面板/窗口制作动画。我不知道任何VCL功能。
这是一个动画窗口的例子(尽管它很快和很脏):
代码:
procedure TForm1.Button1Click(Sender: TObject);
var
I, X: Integer;
begin
Form2.Width := 1;
Form2.Height := Form1.Height;
Form2.Left := Form1.Left + Form1.Width;
Form2.Top := Form1.Top;
Form2.Show;
Timer1.Enabled := true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if I < 500 then
begin
I := I + 1;
Form2.Width := I;
end
else
begin
Timer1.Enabled := false;
end;
end;
不完美,但希望能够给你一个好主意。
安迪
答案 1 :(得分:3)
你可以使用Jedi JVCL的TJvRollOut。 它就像一个崩溃和扩展的面板。您也可以查看Delphi: sliding (animated) panel和 Hide, Slide And Fade Away Controls On A Delphi Form
答案 2 :(得分:2)
最后,我设法发挥了作用。我放了一个面板,我添加了一张图片。然后我在buton点击过程中使用了animatedwindows。
procedure TFTelefonoSIP.Button1Click(Sender: TObject);
begin
if GDPanelLlamadasHidden = False then
begin
AnimateWindow(Panel1.Handle, 200, AW_SLIDE or AW_HOR_POSITIVE or AW_HIDE);
GDPanelLlamadasHidden := True;
end
else
begin
AnimateWindow(Panel1.Handle, 200, AW_SLIDE or AW_HOR_NEGATIVE or AW_ACTIVATE);
GDPanelLlamadasHidden := False;
end;
end;
但效果不是我想要的,有时图像显示闪光,不是很美观。
答案 3 :(得分:0)
你应该在申请表格中启用“Double Buffered”属性......这样可以防止闪烁..