Comienzo preparando los controles que necesito en un ficha nueva como puedes ver en la imagen.
Objetos utilizados: Observa las etiquetas que ya conoces. Los botones son de la paleta Standar (Para ir mas rapido) y veras el panel que los rodea.
Cada vez que introduces un nombre y su fecha, se pulsa ACEPTAR; en cualquier momento se puede obtener el MAS JOVEN y el MAS VIEJO pulsando el boton correspondiente. A ver si lo adivinas. Vale, vale. La solucion aparece en los cuadros de texto.
Solo escribo 'a dedo' el codigo del evento On_Clic de los botones; y el resto lo ha construido el Delphi mientras que yo he ido arrastrando objetos a la ficha. Aqui esta el codigo:
unit Masjoven;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, ComCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
NOMBRE: TEdit;
Label3: TLabel;
FECHA: TDateTimePicker;
Panel1: TPanel;
ACEPTAR: TButton;
MASJOVEN: TButton;
MASVIEJO: TButton;
CERRAR: TButton;
procedure CERRARClick(Sender: TObject);
procedure ACEPTARClick(Sender: TObject);
procedure MASJOVENClick(Sender: TObject);
procedure MASVIEJOClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
VAR
TNOM:ARRAY[1..50]OF STRING[30];
TFECHA:ARRAY[1..50]OF TDATETIME;
I,TOPE:INTEGER;
procedure TForm1.CERRARClick(Sender: TObject);
begin
CLOSE;
end;
procedure TForm1.ACEPTARClick(Sender: TObject);
begin
TNOM[TOPE]:=NOMBRE.TEXT;
TFECHA[TOPE]:=FECHA.DATE;
TOPE:=TOPE+1;
NOMBRE.CLEAR;
FECHA.DATE:=DATE;
NOMBRE.SETFOCUS;
end;
procedure TForm1.MASJOVENClick(Sender: TObject);
VAR
JOVEN:TDATETIME;
POS:INTEGER;
begin
// BUSCO EN TFECHA LA MAYOR
JOVEN:=TFECHA[1];
POS:=1;
FOR I:=1 TO TOPE-1 DO
IF TFECHA[I]>JOVEN THEN
BEGIN
JOVEN:=TFECHA[I];
POS:=I;
END;
// DESPUES DEL FOR
NOMBRE.TEXT:=TNOM[POS];
FECHA.DATE:=JOVEN;
end;
procedure TForm1.MASVIEJOClick(Sender: TObject);
VAR
VIEJO:TDATETIME;
POS:INTEGER;
Begin
// BUSCO EN TFECHA LA MENOR
VIEJO:=TFECHA[1];
POS:=1;
FOR I:=1 TO TOPE-1 DO
IF TFECHA[I]
BEGIN
VIEJO:=TFECHA[I];
POS:=I;
END;
// DESPUES DEL FOR
NOMBRE.TEXT:=TNOM[POS];
FECHA.DATE:=VIEJO;
end;
INITIALIZATION
TOPE:=1;
end.