1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
procedure TForm1.ExportAsMetaFile(FileName: string; Out_Canvas: TCanvas; FileFormat: boolean);
var
Meta: TMetaFile;
MetaCanvas: TMetaFileCanvas;
i: integer;
begin
Meta := TMetaFile.create;
try
Meta.Enhanced := FileFormat; // True pour ecrire un EMF format, False ppour un WMF
Meta.Width := MapWidth ; //Tailles du Métafichier
Meta.Height := MapHeight ;
MetaCanvas := TMetaFileCanvas.Create(Meta,canvas.handle);
try
with metaCanvas do begin
pen.Style := psSolid; //Paramètres du tracé
pen.width := 1;
pen.mode := pmcopy;
brush.Style := bsClear;
pen.Color := clBlack;
For i:=1 to (MapWidth) do
Begin
Draw(Matrice_liens[i,0]*coef, Matrice_liens[i,1]*coef,Site);
Draw(Matrice_liens[Matrice_resultats[i],0]*coef, Matrice_liens[Matrice_resultats[i],1]*coef, Concentrateur);
PenPos := Point(Matrice_liens[i,0]*coef, Matrice_liens[i,1]*coef);
LineTo(Matrice_liens[Matrice_resultats[i],0]*coef,Matrice_liens[Matrice_resultats[i],1]*coef);
end;
end;
finally
MetaCanvas.Free;
end;
Meta.saveToFile(Filename); // Sauve le dessin sous form d'un WMF ou d'un EMF (meta fichier de windows WMF est un format plus récent)
// Le choix d'un WMF ou d'un EMF dépend de FileFormat (variable de la procédure)
finally
Meta.free;
end;
// Out_Canvas.Draw(0, 0, AMetaFile);
// Recopie le contenue du metafile dans un TCanvas. Pour une impression (Canvas du TPrinter) une previsualisation ou le
// Desin d'un composant par exemple
end; |
Partager