Форум: "Начинающим";
Текущий архив: 2008.11.09;
Скачать: [xml.tar.bz2];
ВнизСворачивающаяся панель Найти похожие ветки
← →
serjo © (2008-09-29 22:28) [0]В некоторых программах я видел сбоку такую кнопку в виде полоски, кликая по которой открывается дополнительная панель. Скажите (а лучше, если не затруднит покажите), как сделать такую фишку. Желательно код. Заранее вам благодарен.
← →
<Evil> (2008-09-29 23:44) [1]panel1.visible := true; ?
← →
{RASkov} © (2008-09-29 23:53) [2]Попробуй такой пример:
Создай новый проект, дважды кликни по форме, тем самым добавив обработчик OnCreate.
Затем выдели всё что в окне редактора кода удали и замени его кодом ниже:unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private { Private declarations }
FFrm: TForm;
procedure FormMove(var Ms: TMessage); message WM_MOVE;
procedure SetPosFrm(Frm: TForm);
procedure PnClick(Sender: TObject);
public { Public declarations }
end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var C, R: Integer;
begin
Width:=400;
Height:=250;
BorderStyle:=bsSingle;
Tag:=Integer(TPanel.Create(self));
with TPanel(Tag) do begin
Parent:=Self;
Align:=alRight;
Width:=7;
Caption:=">";
OnClick:=PnClick;
end;
FFrm:=TForm.Create(Self);
FFrm.BorderStyle:=bsNone;
FFrm.Width:=150;
for R:=1 to 7 do
for C:=1 to 4 do
with TButton.Create(FFrm) do begin
Parent:=FFrm;
BoundsRect:=Rect(25*C, 25*R, 25*C+25, 25*R+25);
end;
end;
procedure TForm1.SetPosFrm(Frm: TForm);
begin
Frm.Left:=Left+Width;
Frm.Top:=Top+GetSystemMetrics(SM_CYCAPTION);
Frm.Height:=Height-GetSystemMetrics(SM_CYCAPTION);
end;
procedure TForm1.PnClick(Sender: TObject);
begin
SetPosFrm(FFrm);
if FFrm.Visible then begin
AnimateWindow(FFrm.Handle, 200, AW_SLIDE or AW_HOR_NEGATIVE or AW_HIDE);
FFrm.Visible:=False;
TPanel(Tag).Caption:=">";
end else begin
AnimateWindow(FFrm.Handle, 200, AW_SLIDE or AW_HOR_POSITIVE);
FFrm.Visible:=True;
TPanel(Tag).Caption:="<";
end;
end;
procedure TForm1.FormMove(var Ms: TMessage);
begin
if not Assigned(FFrm) or not FFrm.Visible then Exit;
SetPosFrm(FFrm);
end;
end.
Это не готовое решение, так как тут имеются некоторые косяки и недочеты.... но думаю для старта пойдет.
← →
Amoeba © (2008-09-30 00:02) [3]http://www.torry.net/pages.php?id=161
Компонент TWhisperSplitter
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.11.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c