Ver Mensaje Individual
  #5  
Antiguo 03-05-2011
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 4.214
Reputación: 24
newtron Va camino a la fama
Hola, no conozco ningún componente que te haga eso por lo que podrías pensar en crear una serie de botones usando algún componente en el que puedas poner una imagen y creando los que necesites en lineas y filas según el tamaño que desees que tenga la imagen.

Aunque no para esto yo he hecho algo parecido para una impresión de etiquetas en la que se crea una matriz de botones de N etiquetas por ancho x M filas y que permite picar en cualquiera de ellos, por si te sirve de ejemplo te paso el código a continuación.

Código Delphi [-]
procedure TFormPideNumEti.LLamaNumEti(var NumEti: SmallInt;Filas,Columnas,Ancho,Alto: SmallInt);
var
Left,Top,EtiLin,EtiCol,N: SmallInt;
begin
  FormPideNumEti := TFormPideNumEti.Create(Application);
  try
    SetLength(ArrayBotones,0);
    EtiLin:=0;EtiCol:=0;
    Top:=50;Left:=24;
    T:=Columnas*Filas;
    for N := 0 to T-1 do begin
      Setlength(ArrayBotones,Length(ArrayBotones)+1);
      ArrayBotones[N]:=tdsFancybutton.Create(nil);
      ArrayBotones[N].Name:='Boton_'+IntToStr(N);
      ArrayBotones[N].Left:=Left;
      ArrayBotones[N].Top:=Top;
      ArrayBotones[N].Width:=Ancho;
      ArrayBotones[N].Height:=Alto;
      ArrayBotones[N].Parent:=FormPideNumEti;
      ArrayBotones[N].Font.Size:=20;
      ArrayBotones[N].Caption:=IntToStr(N+1);
      ArrayBotones[N].OnClick := BotonClick;
      ArrayBotones[N].Tag := N+1;
      if EtiLin=Filas-1 then begin
        Top:=Top+Alto;
        Left:=24;
        EtiLin:=0;
      end else begin
        EtiLin:=EtiLin+1;
        Left:=Left+Ancho;
      end;
    end;

    FormPideNumEti.ShowModal;
    NumEti := FormPideNumEti.NumEti;

  finally
    FormPideNumEti.Destroy;
  end;

end;

Saludos
Responder Con Cita