我試圖做的,在Delphi中,當你按下一個按鈕,我顯示一個下拉麪板,這樣的選擇:我該怎麼辦這個效果?
有誰知道如何使VCL這種效果? 現在我有一個2面板的形式,主要總是顯示並有一個側面按鈕,當我按下按鈕的側面板顯示,但我想做的效果。 謝謝
我試圖做的,在Delphi中,當你按下一個按鈕,我顯示一個下拉麪板,這樣的選擇:我該怎麼辦這個效果?
有誰知道如何使VCL這種效果? 現在我有一個2面板的形式,主要總是顯示並有一個側面按鈕,當我按下按鈕的側面板顯示,但我想做的效果。 謝謝
我不知道具體的應用程序,具有透明度和其他東西。不過,我認爲你必須通過自己的某種循環來對你的面板/窗口進行動畫處理。我不知道任何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;
並不完美,但希望不夠好,給你一個想法。
安迪
I' d使用Application.ProcessMessages()重新考慮。如果用戶在動畫已經在進行中時再次點擊按鈕會怎麼樣? –
Application.ProcessMessages - 不建議這麼做... – RBA
不要使用ProcessMessages。計時器就是你想要的。看到彼此相鄰的'Sleep'和'ProcessMessages'讓我感到毛骨悚然! –
可以使用TJvRollOut從絕地JVCL。它的行爲就像一個可以讓人喜歡和擴大的面板。你也可以看看Delphi: sliding (animated) panel和 Hide, Slide And Fade Away Controls On A Delphi Form
最後,我設法做出了效果。我把一個小組,我添加了一張照片。然後我在按鈕點擊過程中使用了動畫窗口。
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;
但效果不是我想要的,有時圖像顯示閃光,不是很美觀。
,你應該能夠在申請表的「雙緩衝」財產......這應該防止閃爍..
這不是一個答案。它應該是對@ elcharlie的回答的評論。 –
很難知道從哪裏開始。你真的不是指vlc嗎?你到目前爲止有什麼?你以什麼方式卡住? –
我使用[AnimateWindow](http://msdn.microsoft.com/en-us/library/windows/desktop/ms632669%28v=vs.85%29.aspx)使用VCL表單時的WinAPI命令。缺點是你的用戶界面在動畫的時候被凍結,所以最好用它來做短暫和快速的動畫。 [1]: 「AnimateWindow」 –
VLC(VideoLAN的客戶端)或VCL(可視化組件庫爲Delphi)???也許他需要一個滑出式面板+非矩形窗口(或兩個窗口)。 –