// Es wird ein Zoomfaktor für TCanvas eingestellt:


// Getestet mit D4 unter XP

procedure CanvasZoom(cnv: TCanvas; zoom: Word; var x, y: Integer); 
const 
  pz = 100; 
begin 
  if zoom = pz then SetMapMode(cnv.Handle, MM_TEXT) 
  else begin 
    SetMapMode(cnv.Handle, MM_ISOTROPIC); 
    SetWindowExtEx(cnv.Handle, zoom, zoom, nil); 
    SetViewportExtEx(cnv.Handle, pz, pz, nil); 
    x := round(x * zoom / pz); 
    y := round(y * zoom / pz); 
  end; 
end; 
 
 
 
// Je kleiner der Zoomfaktor, desto größer wird 
// alles dargestellt 
 
var 
  i: integer = 16;   // z.B. 
  j: integer = 180;  // z.B. 
 
procedure TForm1.Button1Click(Sender: TObject); 
var x, y: integer; 
begin 
  x := i; 
  y := j; 
  canvas.Font.Name := 'Arial'; // muss TrueType sein 
  canvas.Font.size := 8; 
  Canvas.Textout(Image1.left, Image1.top, 'TESTSCHRIFT'); 
  canvaszoom(Canvas, 50, x, y); 
  canvas.Draw(x, y, image1.picture.bitmap); 
  Canvas.Textout(x, y, 'TESTSCHRIFT'); 
end; 
 
// zurücksetzen 
 
procedure TForm1.Button5Click(Sender: TObject); 
var x, y: integer; 
begin 
  x := i; 
  y := j; 
  canvaszoom(Canvas, 100, x, y); 
  canvas.Draw(x, y, Image1.picture.bitmap); 
  Canvas.Textout(x, y, 'TESTSCHRIFT'); 
end;



 

Zugriffe seit 6.9.2001 auf Delphi-Ecke