Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.045 c
1-1172151336
Цукор5
2007-02-22 16:35
2007.04.22
Полная высота TLabel


2-1175281898
Sholah_Weras
2007-03-30 23:11
2007.04.22
Высота/Ширина рисунка.


9-1145552442
JF
2006-04-20 21:00
2007.04.22
Материал в OGL


2-1175691056
cosinus
2007-04-04 16:50
2007.04.22
Хм...Вопрос по глобальному хуку на клавиатуру


6-1153507929
bobbi
2006-07-21 22:52
2007.04.22
Почему не работает след. код (отправка почты)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский