Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Cambiar Left de frxMemoView en tiempo de Ejecucion (https://www.clubdelphi.com/foros/showthread.php?t=93521)

Neeruu 25-10-2018 15:58:34

Cambiar Left de frxMemoView en tiempo de Ejecucion
 
Hola a todos.

Necesito que me ayuden...

Tengo una MasterData, enlazada a datos.

Dentro de la banda tengo 2 campos, un frxPictureView y un frxMemoView.. hasta acá no hay ningún problema.

El tema es que la imagen que se carga es de ancho variable y necesito que el frxMemoView se acomode al lado de la imagen...
O sea el frxMemoView cambia el left por cada renglón que se imprime y esto es lo que no se hacer...

Como puedo cambiar el left del frxMemoView por cada renglón que se imprima teniendo en cuenta el width de frxPictureView?

Saludos.

gatosoft 26-10-2018 17:20:12

Puedes utilizar desde delphi la función FindObject del reporte para obtener una instancia del memo o de la imagen y desde Delphi ajustar las propiedades

El sigueinte codigo asigna texto a un memo cuyo nombre se pasa como parametro... igual puedes ajustardesde aqui el left.

Código Delphi [-]
Uses frxClass;

Procedure TForm1.AsignarValorMemo(pMemoName, pMemoValue: String);
var
  t: TfrxMemoView;
Begin
  t := TfrxMemoView(frxReport1.FindObject(pMemoName));
  if t <> nil then
  t.Memo.Text := pMemoValue;
end;

Para hacer el ajuste, debes programar el evento OnBeforePrint de la banda que contiene lso componentes y hacer un llamado a una funcion externa (por ejemplo: AjustarTamanios)


Código Delphi [-]
//esto es en fastreports
procedure Header1OnBeforePrint(Sender: TfrxComponent);
begin
  AjustarTamanios();
end;

vuelves a Delphi y asignas la función externa al componente

Código Delphi [-]
procedure TForm1.Create(Sender: TObject);
begin
  frxReport1.AddFunction('function AjustarTamanios(): Boolean;');
end;

El componnte de fastreports TfrxReport, tiene un evento llamado OnUserFunction y allí verificas si la función fue llamada y haces los ajustes que consideres

Código Delphi [-]
function TForm1.frxReport1UserFunction(const MethodName: string;
  var Params: Variant): Variant;
begin
  if CompareText(MethodName, AjustarTamanios) = 0 then
     begin
      //aqui tu codigo para ajustar tamaños
   end;
end;


La franja horaria es GMT +2. Ahora son las 01:27:19.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi