TButton/es
│
Deutsch (de) │
English (en) │
español (es) │
suomi (fi) │
français (fr) │
日本語 (ja) │
русский (ru) │
Un TButton es un componente que provee un control básico de presionar un botón. Está disponible en la Standard_tab/es de la Component Palette.
Un TButton es un de los controles más básicos en un Form. Haciendo click con el ratón sobre él (o mediante la tecla [tab] sobre el botón y presionándole mediante la tecla Entrar/Intro/Enter), se activa una acción. Ese click se llama evento. Para esto se necesita un event handler que se llama después del salto.
Se puede añadir un botón en un formulario haciendo click en TButton (un botón cuadrado con un "OK" en el medio) en la paleta de componentes Standard y ubicarlo haciendo click en el formulario.
Para acceder fácilmente al manejador de evento para el click del ratón basta con hacer doble click sobre el botón que se creó en el formulario (o en el inspector de objetos, seleccionar el evento "OnClick" del botón). El manejador de evento para un Button1 en un formulario Form1 tendrá este aspecto:
procedure TForm1.Button1Click(Sender: TObject);
begin
end;
Entre las sentencias begin y end se puede escribir el código que será ejecutado cuando Button1 es presionado.
Casi todos los tutoriales de principiantes disponibles utilizan TButtons como una entrada fácil en la Programación Orientada a Objetos con Lazarus. Los siguientes tutoriales son adecuados para que los principiantes entiendan el uso de los botones:
- The first GUI application for absolute beginners.
- Tu primer programa con Lazarus tutorial para Lazarus.
- Ejemplo de programación Programación Orientada a Objetos con FreePascal y Lazarus.
Un ejemplo sencillo
- Crea una nueva aplicación y suelta un TButton en el formulario (Form).
- Haz doble click sobre ese Button1 en el formulario (el método predeterminado para el evento: OnClick se crea para Button1y se abre el editor de código fuente).
- Agrega el siguiente código en el procedimiento:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Lazarus me alegró el día'); //Se muestra un mensaje con ese contenido (texto)...
end;
- Corre o ejecuta tu programa (con la tecla <F9> o presionando el botón verde de Play).
Generar un botón dinámicamente
A veces, en lugar de crear botones (u otros componentes) con el diseñador de formularios de Lazarus, es más fácil crearlos dinámicamente en tiempo de ejecución. Este enfoque es útil especialmente si tiene continuamente botones repetidos en un formulario (aunque también se pueden copiar y pegar en el formulario en tiempo de diseño).
Esto se puede lograr como en el siguiente ejemplo (una calculadora rápida):
- Crea una nueva GUI application en blanco con el formulario Form1 y agrega StdCtrls a la Cláusula uses (ahí es donde está TButton).
- Cambia el caption Form1 a Suma Rápida.
- Crea el método (procedure) para el evento OnCreate del Form1 (en el Inspector de Objetos debes ir hasta el evento OnCreate y hacer click en el botón [...]).
- Agrega el siguiente código:
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
aButton: TButton;
begin
for i:=0 to 9 do begin //crea 10 botones
aButton:=TButton.Create(Self); //Crea botón, el dueño (Owner) es Form1, donde el botón se libera luego
aButton.Parent:=Self; //determina donde se mostrará
aButton.Width:=aButton.Height; //El ancho debe corresponder a la altura de los botones
aButton.Left:=i*aButton.Width; //Distancia desde la izquierda
aButton.Caption:=IntToStr(i); //Captions (leyendas) de los botones (0.9)
aButton.OnClick:=@aButtonClick; //El controlador de eventos para el botón -> se creará aún
end;
Self.Height:=aButton.Height; //Altura del formulario debe corresponder a la altura de los botones
Self.Width:=aButton.Width*10; //Ancho del formulario para que coincida con el ancho de todos los botones
end;
- Ahora debes crear el controlador de eventos para los clics del botón,
- en el editor del código, ingresando su clase (class) TForm1 en la sección
private
. - Agrega
procedure aButtonClick(Sender: TObject);
y presiona las teclas [CTRL] + [Shift] + [c] (La finalización del código se activa y crea el procedimientoTForm1.aButtonClick(Sender: TObject);
. - Pega el siguiente código:
procedure TForm1.aButtonClick(Sender: TObject);
const
Cnt: Integer = 0;
var
i: Integer;
begin
if (Sender is TButton) and //Llamado el controlador de eventos de un botón?
TryStrToInt(TButton(Sender).Caption, i) //entonces intente convertir la etiqueta (Texto de la leyenda/Caption) en un número entero.
then begin
Cnt:=Cnt + i; //El contador de la suma se incrementa por el número de entrechende ¿?
Caption:='Suma rápida: '+IntToStr(Cnt); //Escriba el resultado en el título del formulario
end;
end;
- Ejecuta tu aplicación.
- Debería verse así:
procedure <class>.<name of procedure>(Sender: TObject);
. Por lo tanto, puedes utilizar uno de otra clase!!Lea también