?
Solved

Delphi 7 - Panel visible with animation

Posted on 2012-04-02
17
Medium Priority
?
3,988 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 38

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 23

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
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
LVL 38

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 23

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 38

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 38

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 38

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 38

Accepted Solution

by:
Geert Gruwez earned 375 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 38

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

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

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…
We’ve all felt that sense of false security before—locking down external access to a database or component and feeling like we’ve done all we need to do to secure company data. But that feeling is fleeting. Attacks these days can happen in many w…
As many of you are aware about Scanpst.exe utility which is owned by Microsoft itself to repair inaccessible or damaged PST files, but the question is do you really think Scanpst.exe is capable to repair all sorts of PST related corruption issues?
Suggested Courses

850 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