He encontrado ejemplos como este:
Código Delphi
[-]procedure TForm1.Button1Click(Sender: TObject);
var
b:TBitmap;
RDest, RSource: TRect;
begin
b := TBitmap.Create();
b.Width := 100;
b.Height := 100;
RDest := Rect(0,0,100,100);
RSource := Rect(0,0,100, 100);
b.Canvas.CopyRect(RDest, Self.Canvas, RSource);
end;
El ejemplo que encontré entre algunos, siempre se basan midiendo de un TPaintBox, TImage o de un TPanel PEGADOS al Form (es decir en el formulario están como OBLIGADOS uno de estos objetos para calcularlos con el CopyRect). Pero no encuentro un ejemplo que teniendo el BitMap en mi Directorio calcular (un x-ancho) y mostrarlo evidentemente en un TPaintBox, TImage, TPanel o en el Form solo UNA PARTE del BMP después de cierto cálculo.
Intentaré explicarlo sencillamente, tengo un TButton y un TPanel (con 2 TImage)...... ojo que no se si elegí la forma correcta aquí de los componentes, derepente hubiera sido mejor mostrarlos en un TpaintBox o directamente en el Form en cierta posición, no sé:
Código Delphi
[-]Case Num of 0: 1: 2: ....
end;
En el Case para cada caso mostraría un número de miBMP recortado en los TIMage contenidos en el TPanel o en un TPaintBox.
Quizá me digan que más sencillo resultaría crear BMPs para cada uno y mostrarlos.... de acuerdo! pero lo que no quiero es llenar por ejemplo de 10 BMPs como fuente de números en mi Directorio, mucho menos de 23 BMPs del Abecedario. Prefiero crear uno LARGO (uno solo) conteniendo a todos, para luego recortarlos uno a uno y mostrarlos según necesidades y cálculo.
Como dije arriba, de los ejemplos que encontré en la Red, todos se basan en el CopyRect teniendo el gráfico en el Form, y así calculando sus medidas y recortarlo. Lo que yo necesito es ver la forma de hacer ese recorte sin que se vea (sin que se encuentre) en el Form, solo sabiendo las medidas de mi BMP que se encuentra en mi directorio y tomando en el Case un ancho diferente para cada uno.
- Luego será otro lo del blinkado.