Vamos a crear algunos componentes en ejecución, paso a paso.
Primero definimos que componentes usaremos, esto lo colocaremos como una variable general.
var Form1: TForm1; PCInformacion: TPageControl; DTPFecha: TDateTimePicker; Hoja1, Hoja2: TTabSheet; DataSource: TDataSource; DBGDatos: TDBGrid; Button1: TButton; Panel: TPanel; implementation
Ahora en el evento Oncreate del form crearemos los componentes.
procedure TForm1.FormCreate(Sender: TObject); begin PCInformacion := TPageControl.Create(Self); with PCInformacion do begin Parent := Form1; Align := AlClient; end; Hoja1 := TTabSheet.Create(PCInformacion); with Hoja1 do begin PageControl := PCInformacion; Caption := 'Hola Mundo'; DTPFecha := TDateTimePicker.Create(Self); DBGDatos := TDBGrid.Create(Self); DataSource := TDataSource.Create(Self); Button1:= TButton.Create(Self); DTPFecha.Parent := Hoja1; DBGDatos.Parent := Hoja1; DBGDatos.Top:= 48; Button1.Parent := Hoja1; Button1.Left:= 5; Button1.Top:= 200; Button1.OnClick := OnButton1Click; Button1.Caption:= 'Hola'; end; Hoja2 := TTabSheet.Create(PCInformacion); with Hoja2 do begin PageControl := PCInformacion; Caption := 'Hola Mundo en la Hoja 2'; end; end;
Veremos un ejemplo del uso, en este caso con el boton que creamos.
Primero creamos el procedimiento.
type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); // este lo creo delphi procedure OnButton1Click(Sender: TObject); // este es el que creamos. procedure FormDestroy(Sender: TObject); // este lo creamos private { Private declarations } public { Public declarations } end;
Ahora creamos la acción de ese procedimiento.
procedure TForm1.OnButton1Click(Sender: TObject); begin ShowMessage('Presionaste el boton 1!'); with Hoja1 do begin Panel := TPanel.Create(Self); Panel.Parent := Hoja1; Panel.Height:= 161; Panel.Width:= 220; Panel.Left:= 264; Panel.Top:= 264; Panel.Caption:= 'Hola que tal'; end; end;
Por ultimo un dato importante, destruir los componentes al salir del form.
procedure TForm1.FormDestroy(Sender: TObject); begin DTPFecha.Free; Hoja1.Free; Hoja2.Free; PCInformacion.Free; end;
Hay que tener en cuenta que hay que añadirle al uses los unit que se necesitaran, en este caso:
ComCtrls, DB, DBGrids, StdCtrls, ExtCtrls
Osea quedara asi:
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, DB, DBGrids, StdCtrls, ExtCtrls;
Si tenéis dudas, podéis crear un hilo y os ayudaremos con gusto.
Saludos