PDA

Ver la Versión Completa : Imprecion con Chart FX


agonzalez
12-03-2004, 23:13:31
Hola

Tengo un Chart FX y no me sirve como imprime este control, la funcion de imprimir esta incorporada en el y no se como modificarla.

si alguien sabe como, me seria de mucha utilidad tengo Delphi 5.

Gracias

agonzalez
16-03-2004, 15:47:18
ya tengo la solucion

en las declaraciones publicas
//Boton a mostrar
BtnMPrint: TBitBtn;
//Evento para imprimir en el reporte
Procedure BtnPrintM(Sender : TObject);
//Copia la imagen del del grafico en el ClipBoard
Function CopyToClipBoard:tBitmap;
//Envia el boton al frente
Procedure botonAlFrente;

En el constructor
{coloca un boton sobre la opcion de imprimir del control TChartFX,
por que este evento no se puede heredar de dicho control y necesito
modificarlo
asi que creo un control y le asigno el evento que necesito}
BtnMPrint:=TBitBtn.Create(self);
BtnMPrint.top:=4;
BtnMPrint.Left:=97;
BtnMPrint.Width:=23;
BtnMPrint.Height:=23;
BtnMPrint.OnClick := BtnPrintM;
BtnMPrint.Parent:=self;
BotonAlFrente;

Procedimiento

//Retorna la imagen del grafico
function TdGrafico.CopyToClipBoard: tBitmap;
var
BMP:tBitmap;
i:Integer;
begin
BMP := tBitmap.Create;
try
i:=FChart.CopyBitmap;
Bmp.LoadFromClipBoardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap),0);
Result:=BMP;
finally
BMP.Free;
end;
end;
//Imprime en el un quitreport
procedure TdGrafico.BtnPrintM(Sender: TObject);
var

ImpGrafico:TImpGrafico;//Este es un Qreport un Qrimage
bmp:tBitmap;
i:integer;
begin
ImpGrafico := tImpGrafico.Create(Self);
try
BMP := TBitmap.Create;
try
Bmp:=CopyToClipBoard;
ImpGrafico.Grafico.Picture.Bitmap:=Bmp;
ImpGrafico.Refresh;
ImpGrafico.Prepare;
ImpGrafico.PreviewModal;
finally
BMP.Free;
end;
finally
ImpGrafico.Free;
end;
end;
//Envia el boton al frente
procedure TdGrafico.botonAlFrente;
begin
BtnMPrint.BringToFront;
end;

No es la solucion mas elegante pero funciona.
Lo unico que me falta es darle el icono a el boton, pero no se como.

Gracias

agonzalez
16-03-2004, 15:53:22
Se me olvido halgo muy importante

en el destructor
//Elimina el obgeto de memoria
BtnMPrint.free;

cso2000
07-04-2004, 17:43:52
Hola agonzalez. en tu mensaje lei que tienes un chart Fx y no se donde puedo localizar ese componente tu me podrias decir ?