Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Agregar Botones a ScrollBox (https://www.clubdelphi.com/foros/showthread.php?t=46334)

mRoman 29-07-2007 03:45:17

Agregar Botones a ScrollBox
 
Hola Amigos....

Solicito de su ayuda.....fijense q estoy creando botones en tiempo de ejecucion, y tengo un ScrollBox donde quiero agregar dichos botones. Les comento q la parte de crear los botones ya esta resuelto, pero ahora necesito integrarlos a un scrollbox, ya que en estos momentos lo unico q hice fue colocarlos en direccion donde este ultimo (scroll) se encuentra cuando se ejecuta el sistema, pero si se agregan mas 6 botones, estos rebasan los limites del scroll, y aparte los botones se quedan "encima" de este....

Necesito q cuando se rebase los limites, se activen las barras de desplazamiento del scroll, pero esto solo sucede si agrego los botones en tiempo de diseño, pero eso no me sirve de mucho, necesito hacerlo en tiempo de ejecucion.

Gracias y espero haberme explicado...
Les paso el codigo de lo q llevo
Código Delphi [-]
procedure TfrmRegServicios.FormShow(Sender: TObject);
Var
PosY:Integer;
begin
   gBoxTipoServicio.Caption:='';
   qryServicios.Close;
   qryServicios.Open;
   PosY:=100;
   n:=1;
   While not qryServicios.Eof do
   begin
      Botones[n]:=TButton.Create(Self);
      with Botones[n] do
      begin
          Caption:=qryServicios.fieldbyname('DESCRIPCION').AsString;
          Parent:=self;
          Height:=71;
          Top:=PosY;
          PosY:=PosY+Height+10;
          Left:=16;
          Width:=97;
          OnClick:=OnButtonClick;
          Name:='btn'+IntToStr(n);
          Tag:=qryServicios.fieldbyname('CLAVE_SERVICIO').AsInteger;
      end;
      qryServicios.Next;
      inc(n);
   end;

end;

procedure TfrmRegServicios.OnButtonClick(Sender:TObject);
var
nServicio:Integer;
begin
    with Sender as tButton do begin
       nServicio:=(Sender as tButton).Tag;
       gBoxTipoServicio.Caption:=(Sender as tButton).Caption;
    end;
    qryPrenda.Close;
    qryPrenda.ParamByName('SERVICIO').AsInteger:=nServicio;
    qryPrenda.Open;
    qryPrenda.FetchAll;
end;
Ahora como integro estos botones a un scrollbox ?

Caral 29-07-2007 04:04:54

Hola
A buen santo te arrimas, pero bueno, aqui esto lo que pienso:
Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure OnButton1Click(Sender: TObject);
    procedure OnButton2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Button1,Button2: TButton;
  ScrollBox1: TScrollBox;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
    ScrollBox1 := TScrollBox.Create(Self);
    ScrollBox1.Parent := Self;
  with ScrollBox1 do
  begin
    Button1:= TButton.Create(ScrollBox1);
    Button1.Parent := ScrollBox1;
    Button1.Caption := 'Botón';
    Button1.Left:= 20;
    Button1.Top:= 10;
    Button1.OnClick := OnButton1Click;

    Button2:= TButton.Create(ScrollBox1);
    Button2.Parent := ScrollBox1;
    Button2.Caption := 'Botón';
    Button2.Left:= 100;
    Button2.Top:= 10;
    Button2.OnClick := OnButton2Click;
end;
end;

procedure TForm1.OnButton1Click(Sender: TObject);
begin
  ShowMessage('Presionaste el boton 1!');
end;

procedure TForm1.OnButton2Click(Sender: TObject);
begin
  ShowMessage('Presionaste el boton 2!');
end;

end.
Saludos

mRoman 29-07-2007 07:52:38

Ok...gracias !! nuevamente por tu ayuda....

Ya pude hacerlo....gracias a algo q observe en tu codigo, es la propiedad Parent...solo le agregue ScrollBox2 y LISTO !!
Parent:=ScrollBox2;

Y ya quedo....anteriormente tenia en el codigo q te pase, lo siguiente:

Parent:=Self; (A SI MISMO).....AQUI ESTABA EL ERROR !!....


La franja horaria es GMT +2. Ahora son las 19:39:39.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi