菜鸟发问:请问这种菜单是怎么做的? (30分)

  • 主题发起人 主题发起人 kenneth
  • 开始时间 开始时间
K

kenneth

Unregistered / Unconfirmed
GUEST, unregistred user!
这个图片 :
http://www.freewebz.com/www001/flash/p1.jpg
请问这种左边菜单,右边窗口是怎么实现的
 
怎么没有人回答,是我没说清楚吗,还是没人知道呀
 
典型的Outlook形式,有相应的控件
网上搜一下,有一大把
 
有很多现成的控件
 
可以提供个网址吗,或推荐个,谢~
 
我做过这种样式的窗口,是 Dream Controls 套件;不过很占资源。
 
是outlook的样式吗?
你那个网址我打不开。
outlook的样式你要是不嫌麻烦完全可以自己做。
用panel控件和speedbutton控件再加上一个timer控件,只需很少的语句就可以自己做了!
 
请问如果要做成和这种差不多的效果你认为用什么会更好呢
 
我有个控件是
ExpressBars
 
iapollo:
对呀,如果自己做应该怎么做,可以告诉我吗

雪中漫步: 你说的那个控件我也没有找到,哪有?
 
1st class也可以的.
 
说起来很麻烦的,我先把代码贴出来,你先看看
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons;

type
TForm1 = class(TForm)
Timer1: TTimer;
Timer2: TTimer;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Button1: TButton;
Button2: TButton;
Panel4: TPanel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
pa:TPOINT;
i:Integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(application.Handle,gwl_exstyle,ws_ex_toolwindow);
timer1.Interval:=1;
timer1.Enabled:=true;
timer2.Enabled:=false;
Button2.Top:=200;
panel4.Top:=Button2.Top+25;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
GetCursorPos(pa);
if Form1.top<30 then
begin
Form1.Top:=0;
if (pa.x<Form1.Left) or (pa.x>(Form1.left+Form1.width)) or (pa.y>Form1.Height) then
Form1.Visible:=False
else
Form1.visible:=True;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if Button2.Top<100 then begin
Timer2.Interval:=1;
Timer2.Enabled:=true;
i:=0;
end;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if Button2.Top>100 then begin
Timer2.Interval:=1;
Timer2.Enabled:=true;
i:=1;
end;

end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin

if i=0 then begin if Button2.Top<200 then
Button2.Top:=Button2.Top+4; end;
if i=1 then begin if Button2.Top>24 then
Button2.Top:=Button2.Top-4; end;
panel4.Top:=Button2.Top+25;
if Button2.Top=200 then timer2.Enabled:=false;
if Button2.Top=24 then timer2.Enabled:=false;
end;

end.
在form上的放置层次如下:
panel1
button1
speedbutton1
speedbutton2
panel2
button2
speedbutton3
speedbutton4
原理:当单击button1时,用timer控制panel2缓慢下移,panel1显示出来。
但单击button2时,用timer控制panel1缓慢下移,panel2显示出来。
刚把演示程序传上去,下下来自己看看吧!很简单的。
http://iapollo.diy.163.com/mywork/delphi/fQQ.rar

 
OK,好的我先下下来看看,谢谢各位了!
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部