Solved

Delphi 7 - Panel visible with animation

Posted on 2012-04-02
17
3,339 Views
Last Modified: 2013-02-24
hello,
I have a form with 2 panels, panel1 and panel2

defalut:

panel1.visible = true - align = client
panel2.visible = false = align = right

when I press a button panel2 becomes visible = true.
I would like to panel2 visible with animation.

Regards
0
Comment
Question by:danz67
  • 8
  • 7
  • 2
17 Comments
 
LVL 37

Expert Comment

by:Geert Gruwez
ID: 37794909
what exactly do you mean with animation ?

here is a sample from about.com
http://delphi.about.com/od/delphi-tips-2011/qt/hide-slide-fade-away-controls-delphi-form.htm
0
 
LVL 22

Expert Comment

by:Ferruccio Accalai
ID: 37794918
What kind of animation do you mean? A Tanimation on the Panel or what else?
0
 

Author Comment

by:danz67
ID: 37794928
what exactly do you mean with animation ?

here is a sample from about.com
http://delphi.about.com/od/delphi-tips-2011/qt/hide-slide-fade-away-controls-delphi-form.htm
I already know this example and it is fine for what I do I

What kind of animation do you mean? A Tanimation on the Panel or what else?
yes, animation panel
0
Comprehensive Backup Solutions for Microsoft

Acronis protects the complete Microsoft technology stack: Windows Server, Windows PC, laptop and Surface data; Microsoft business applications; Microsoft Hyper-V; Azure VMs; Microsoft Windows Server 2016; Microsoft Exchange 2016 and SQL Server 2016.

 
LVL 37

Expert Comment

by:Geert Gruwez
ID: 37794932
please explain in more detail, what exactly do you want ?

a animation can include all sorts
> a slideshow, line drawing, panel growing/shrinking, etc
0
 

Author Comment

by:danz67
ID: 37794944
ok, I need an animation like that of iphone, push side
0
 
LVL 22

Expert Comment

by:Ferruccio Accalai
ID: 37794965
Wow Geert, can you understand what does he need? 'Cause today I feel a little stupid, as right now I still don't understand what he want.
Push side? A sliding panel?
0
 

Author Comment

by:danz67
ID: 37794982
Sorry,
a sliding panel is fine, but to use with TPanel
0
 
LVL 37

Expert Comment

by:Geert Gruwez
ID: 37794983
that's easy, just use a splitter next to the panel
some splitters provide animation
http://sourceforge.net/projects/tcycomponents/?_test=b
0
 

Author Comment

by:danz67
ID: 37795032
that's easy, just use a splitter next to the panel
some splitters provide animation
http://sourceforge.net/projects/tcycomponents/?_test=b

Ok , i have installed all component.

the component that I use is cySplitter?
you explain how?
0
 
LVL 37

Expert Comment

by:Geert Gruwez
ID: 37795036
i used the devexpress splitter and a panel:

add a splitter (align left, with hot zone xp, autosnap)
and a panel (set control of splitter to this panel)

then add these events to splitter

procedure TForm1.cxSplitter1AfterOpen(Sender: TObject);
var sp: TcxSplitter;
begin
  sp := Sender as TcxSplitter;
  AnimateWindow(TPanel(sp.Control).Handle, 500, AW_HOR_POSITIVE or AW_SLIDE or  AW_ACTIVATE);
end;

procedure TForm1.cxSplitter1BeforeClose(Sender: TObject;
  var AllowClose: Boolean);
var sp: TcxSplitter;
begin
  sp := Sender as TcxSplitter;
  AnimateWindow(TPanel(sp.Control).Handle, 500, AW_HOR_NEGATIVE or  AW_HIDE);
  AllowClose := True;
end;

Open in new window

0
 

Author Comment

by:danz67
ID: 37795284
Very good,
I need use the animation by pressing button

you explain how?
0
 
LVL 37

Expert Comment

by:Geert Gruwez
ID: 37795314
what button ?

when you set the hotzone to style xp, you can click in the middle of the splitter (you may have to widen it to see the hotzone)
this hotzone is clickable
0
 

Author Comment

by:danz67
ID: 37795332
I have understood this and saw and that's fine, but I need to make the panel visible after animation just click a button and not spliier hotzone
0
 
LVL 37

Accepted Solution

by:
Geert Gruwez earned 125 total points
ID: 37795403
use this in button to make visible

panel1.Visible := True;
AnimateWindow(Panel1.Handle, 500, AW_HOR_POSITIVE or AW_SLIDE or  AW_ACTIVATE);


use this in a button to hide
AnimateWindow(Panel1.Handle, 500, AW_HOR_NEGATIVE or  AW_HIDE);
Panel1.Visible := False;
0
 

Author Comment

by:danz67
ID: 37795420
panel1.Visible := True;
AnimateWindow(Panel1.Handle, 500, AW_HOR_POSITIVE or AW_SLIDE or  AW_ACTIVATE);

in this way does not happen to any animation
0
 
LVL 37

Expert Comment

by:Geert Gruwez
ID: 37795465
that's all the help i can give

i'm not an animation artist
0
 

Author Comment

by:danz67
ID: 37795470
ok, no problem, thanks for all
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Have you ever had your Delphi form/application just hanging while waiting for data to load? This is the article to read if you want to learn some things about adding threads for data loading in the background. First, I'll setup a general applica…
Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question