Hola, gracias anticipadas por cualquier ayuda
Estoy intentando colocar una marca de agua en un QRBand ligado a un QRGroup. El problema lo tengo en que no hay un evento definido en las bandas que se ejecute por cada ves que se genera, o por lo menos no se actualiza la propiedad .TOP y la marca de agua se imprime en el mismo sitio quedando solo una.
Quiero que dependiendo de un estatus de ese grupo se coloque una marca de agua, ahora solo cambio el color para diferenciarla del resto, pero me han solicitado que vea la posibilidad de hacer esto que intento, pero me he topado con ese detalle ¿cómo puedo variar el parámetro DestY en la función StretchDIBits y cómo automatizar la llamada de tal forma que puedan imprimirse tantas imágenes como se ocupen en su posición correcta?
El código de la marca de agua es como todos los que circulan por este y otros foros:
Código:
TRY
bmp := TBitMap.Create;
bmp.LoadFromFile(ExtractFilePath(Application.ExeName)+'no_autorizado.bmp');
with QuickRep1.QRPrinter do
begin
Y := YPos(PaperLengthValue) div 6;
X := XPos(PaperWidthValue) div 4;
R := Rect(X, Y, X*3, Trunc(Y*1.5));
Cnv:=Canvas;
end;
with bmp do
begin
GetDIBSizes(Handle, InfoSize, ImageSize);
GetMem(Info, InfoSize);
try
Getmem(Image, ImageSize);
try
GetDIB(Handle, Palette, Info^,Image^);
with Info^.bmiHeader do Begin
StretchDIBits(Cnv.Handle, R.Left, R.Top,
R.Right - R.Left, R.Bottom - R.Top,
0, 0, biWidth, biHeight, Image,
Info^, DIB_RGB_COLORS, SRCAND );
End;
finally
FreeMem(Image, ImageSize);
end;
finally
FreeMem(Info, InfoSize);
end;
end;
FINALLY
bmp.free
END;
Gracias!
PD. No se si esta pregunta ya este antes, he querido revisar las respuestas anteriores pero por alguna razón solo veo los temas nuevos, no he encontrado alguna nueva preferencia en mi panel de control para modificar esto.