Вниз
Скачать: CL | DM;

Скроллер на панели   Найти похожие ветки 

← →
Steep ©   (2007-04-04 10:15) [0]

Добрый день!
Хотел бы узнать как сделать так чтобы если на панели не хватает места (т.е. динамичски создаваемая кнопка если создается дальше чем находится видимая область) появлялась прокрутка (скроллер или что там еще) и скроллером можно было прокручивать панель...

PS надеюсь правильно выразился


← →
SergGG ©   (2007-04-04 10:59) [1]

Попробуй код:

{dfm}
object Form1: TForm1
 Left = 186
 Top = 106
 Width = 696
 Height = 480
 Caption = "Form1"
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = "MS Sans Serif"
 Font.Style = []
 OldCreateOrder = False
 OnPaint = FormPaint
 OnResize = FormResize
 PixelsPerInch = 96
 TextHeight = 13
  object Panel1: TPanel
   Left = 264
   Top = 56
   Width = 249
   Height = 185
   Caption = "Panel1"
   TabOrder = 1
   object Panel2: TPanel
     Left = 0
     Top = 0
     Width = 249
     Height = 285
     Caption = "Panel2"
     Color = clBtnHighlight
     TabOrder = 0
   end
   object ScrollBar1: TScrollBar
     Left = 232
     Top = 1
     Width = 16
     Height = 183
     Align = alRight
     Kind = sbVertical
     Max = 2
     PageSize = 0
     TabOrder = 1
     OnChange = ScrollBar1Change
   end
 end
........
{pas}
procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
 ScrollBar1.Max:=Panel2.Height;
 ScrollBar1.Min:=Panel1.Height;
 Panel2.Top:=ScrollBar1.Position-Panel2.Height;
end;

На Panel2 создавай кнопки


← →
Steep ©   (2007-04-04 12:15) [2]

Не как я понял легче не на панели создавать а на скролбоксе ;)
Он сам и прокручивает ;)


← →
Steep ©   (2007-04-04 12:19) [3]

Только вопрос как сделать чтобы прокрутка сразу была видно (не не работала типа Enabled := false), а не появлялось только когда больше (а просто типа Enabled := true)


← →
SergGG ©   (2007-04-04 12:40) [4]

Вы хотите сказать, чтобы ScrollBar был виден всегда или когда увеличивается поле?
Если всегда, то См. [1]
Если при увеличении поля, то надо следить за Panel2.height.
Т.е. Если Panel2.height>Panel1.height, то ScrollBar.Visible:=True, иначе
ScrollBar.Visible:=False


← →
Steep ©   (2007-04-04 12:42) [5]

нет от панелек я вобще отказался ;)
Я создаю кнопки прям на ScrollBox..
И уже в самом ScrollBox я хотел бы чтобы было виден ScrollBar..
Вот так...


← →
Steep ©   (2007-04-04 13:38) [6]

И еще вопросик- создаю я кнопки

procedure TFrm_RunPanel.Button1Click(Sender: TObject);
begin
 With TSpeedButton.Create(Self) do
 begin
   //Parent := IconPanel;
   Parent := ScrollBox1;
   SetBounds( 1, (32*FBC)+(1*(FBC+1)), 32, 32 );
   Caption := IntToStr(FBC);//"Кнопка";
   Glyph.LoadFromFile("FastButton.bmp");
   Name := "FastButton"+IntToStr(FBC);
   Anchors := [akTop, akLeft];
   inc(FBC);
   OnClick :=FastButtonClick;
 end;
end;


И событие у меня на них на все одно OnClick :=FastButtonClick;
и оно заранее описано..
а как сделать на каждую новую созданную кнопку свое событие?


← →
SergGG ©   (2007-04-04 14:17) [7]

> а как сделать на каждую новую созданную кнопку свое событие?

в процедуре FastButtonClick
TTSpeedButton(Sender).name
для каждой кнопки имеет свой


← →
{RASkov}   (2007-04-04 15:08) [8]

> а как сделать на каждую новую созданную кнопку свое событие?

Ну и присвайвай не OnClick :=FastButtonClick;, а нужное... т.е. вместо FastButtonClick; подставляй любой совместимый(TNotifyEvent) метод.
Для этого создание кнопки вынеси в отдельную процедуру, например так:

procedure CreateMyButton(.....; Evn: TNotifyEvent);
begin
 ....
 OnClick:=Evn;
 ....
end;


← →
Steep ©   (2007-04-04 15:21) [9]

О пасип!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.036 c
15-1174826660
Romas81
2007-03-25 16:44
2007.04.22
диалог ввод пароля НЕ InputBox и InputQuery


11-1155836244
VoofT
2006-08-17 21:37
2007.04.22
Использование GRushControls с mmsystem


2-1175176848
Sesh
2007-03-29 18:00
2007.04.22
Как убить процесс?


15-1175050769
Slider007
2007-03-28 06:59
2007.04.22
С днем рождения ! 28 марта


2-1175687621
Мимопроходящий
2007-04-04 15:53
2007.04.22
Поиск подстроки в тексте




   Наверх