unit FMUESTRA;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,QBUTTONS, ExtCtrls;

type
  TMUESTRA = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure HACERClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    ANCHO,NUMEROXFILA,FILAS:INTEGER;
    NBOTON,NFILA,PROFUNDIDAD,PADREPROFUNDIDAD:INTEGER;
    COD_FAMILIA,PADRE:STRING;
    ULTPROFUNDIDAD,TOTALBOTONES:INTEGER;
    ULTCOD_FAMILIA:STRING;
    PROCEDURE DIBUJARBOTON(DESCRIPCION,COD_FAMILIA,PROFUNDIDAD:STRING);
  end;

var
  MUESTRA: TMUESTRA;

implementation

uses FFAMILIA;

{$R *.dfm}

procedure TMUESTRA.FormCreate(Sender: TObject);
VAR B:VARIANT;
begin
  TOTALBOTONES := 0;
  B :=INT(592 * SCREEN.Width / 800 );
  SELF.Width := B ;
  ANCHO := SELF.Width ;
  B:= (ANCHO - 8) / (screen.Width /10);
  NUMEROXFILA:= B; // numero por fila
  NBOTON:=1;NFILA:=1;
end;
PROCEDURE TMUESTRA.DIBUJARBOTON(DESCRIPCION,COD_FAMILIA,PROFUNDIDAD:STRING);
VAR AUX:TSPEEDBUTTON;
    B:VARIANT;
    C:INTEGER;
    AUXCAR:STRING;
BEGIN
   TOTALBOTONES := TOTALBOTONES + 1;
   AUX := TSPEEDBUTTON.Create(SELF);//familia
//   aux.Parent := panel1;//familia   twidgetcontrol
   B:= INT(SCREEN.Width/10);
   AUXCAR :='';
   IF (DESCRIPCION <> '') THEN
       AUXCAR :=TRIM(DESCRIPCION);
   B:=INT(B/AUX.Font.Size);
   C:=B;
   IF LENGTH(AUXCAR) > C THEN // PARA QUE CORTE LA DESCRIPCION Y QUEPA EN EL BOTON
      AUXCAR := COPY(AUXCAR,1,C);
   AUX.CAPTION := AUXCAR;
   AUX.ENABLED := TRUE;
   AUX.FLAT := TRUE;
   AUX.Font.Color := $00804000;
   AUX.Font.Size := 8;
   B:=SCREEN.Width/10; // EL FORMATO DE PANTALLA QUE TENGA LA DECIMA PARTE
   AUX.Height := B ;
   AUX.WIDTH := B ;
   B := NBOTON;
   aux.Left := 8 + (B-1)*screen.Width /10;
   B:= (NFILA-1)* SCREEN.Width/10;
   aux.top := 8 + B;
   AUX.NAME := 'B'+COD_FAMILIA+PROFUNDIDAD;
   AUX.TAG := STRTOINT(PROFUNDIDAD); // PARA DESPUES IDENTIFICAR AL ARTICULO
   AUX.Transparent := TRUE;
   AUX.OnClick := HACERCLICK;
   IF NBOTON = NUMEROXFILA THEN
   BEGIN
     NBOTON := 1;
     NFILA := NFILA +1;
   END
   ELSE
     NBOTON := NBOTON + 1;
END;
procedure TMUESTRA.HACERClick(Sender: TObject);
VAR AUX:STRING;
    I:INTEGER;
begin
   IF (SENDER IS TSPEEDBUTTON) THEN
   BEGIN
    AUX := 'F'+(SENDER AS TSPEEDBUTTON).Name;
    FOR I:=0 TO SCREEN.FormCount -1 DO
      IF (SCREEN.Forms[I].Name = AUX) THEN
         SCREEN.FORMS[I].Show;
// SHOWMODAL ???
   END;
end;


end.
