Code:
procedure TTrillingFormulier.KnopAfdrukkenClick(Sender: TObject);
var Logo: TBitmap;
x, y, z: Integer;
Msg: Boolean;
Breed, Hoog: Integer;
Str, Keur: String;
v, w: Variant;
begin
Msg:= DlgPrint.Execute;
if Msg then
begin
with Printer do
begin
Breed:= PageWidth;
Hoog:= PageHeight;
Logo:= TBitmap.Create;
Logo.LoadFromFile('C:\Program Files\Borland\Delphi 3\Gulogo.bmp');
BeginDoc;
with Canvas do
begin
Font.Charset:= 1;
Font.Name:= 'Arial Narrow';
Font.Size:= 16;
x:= CmbBoxLoc.ItemIndex;
y:= CmbBoxMachine.ItemIndex;
z:= CmbBoxOpnemer.ItemIndex;
TextOut(20, 40 + Logo.Height + Font.Height,
'Vibratie rapport locatie ' + CmbBoxLoc.Items.Strings[x] +
', machine ' + CmbBoxMachine.Items.Strings[y] +
', opnemer ' + CmbBoxOpnemer.Items.Strings[z]);
MoveTo(PenPos.x, 40 + Logo.Height);
LineTo(Breed - 20 - Logo.Width, 40 + Logo.Height);
Draw(PenPos.x, 40, Logo);
MoveTo(20, Hoog - 80);
LineTo(Breed - 20, Hoog - 80);
Font.Size:= 12;
Font.Style:= Font.Style + [fsItalic];
TextOut(20, 500, 'Opnemer');
Font.Style:= Font.Style - [fsItalic];
TextOut(100, 650, 'Type: ' + FOpnemerType);
v:= FOpnemerGevoeligheid; Str:= v;
case FOpnemerSoort of
0: begin
TextOut(100, 800, 'Soort: Versnelling (Acceleratie)');
TextOut(100, 950, 'Gevoeligheid: ' + Str + ' mV/m/s2');
end;
1: begin
TextOut(100, 800, 'Soort: Snelheid (Velocity)');
TextOut(100, 950, 'Gevoeligheid: ' + Str + ' mV/mm/s');
end;
end;
Font.Style:= Font.Style + [fsItalic];
TextOut(20, 1500, 'Resultaten');
Font.Style:= Font.Style - [fsItalic];
TextOut(1100, 1650, 'Bij 60 Hz');
TextOut(2100, 1650, 'Bij 120 Hz');
TextOut(3100, 1650, 'Bij 180 Hz');
TextOut(100, 1800, 'Referentie-opnemer');
TextOut(100, 1950, 'Test-opnemer');
TextOut(100, 2100, 'Monitor');
TextOut(4100, 1800, 'mm/s');
TextOut(4100, 1950, 'mm/s');
TextOut(4100, 2100, 'mm/s');
MoveTo(1080, 1650);
LineTo(4080, 1650);
MoveTo(80, 1800);
LineTo(4580, 1800);
MoveTo(80, 1950);
LineTo(4580, 1950);
MoveTo(80, 2100);
LineTo(4580, 2100);
MoveTo(80, 2250);
LineTo(4580, 2250);
MoveTo(80, 1800);
LineTo(80, 2250);
MoveTo(1080, 1650);
LineTo(1080, 2250);
MoveTo(2080, 1650);
LineTo(2080, 2250);
MoveTo(3080, 1650);
LineTo(3080, 2250);
MoveTo(4080, 1650);
LineTo(4080, 2250);
MoveTo(4580, 1800);
LineTo(4580, 2250);
v:= FResultaten[1][1]; Str:= v; Delete(Str, 7, 20);
TextOut(1100, 1800, Str);
w:= FResultaten[1][2]; Str:= w; Delete(Str, 7, 20);
if (w < (0.95 * v)) or (w > (1.05 * v))
then Keur:= ' > 5% !!!' else Keur:= ' < 5%';
TextOut(1100, 1950, Str + Keur);
w:= FResultaten[1][3]; Str:= w; Delete(Str, 7, 20);
if (w < (0.95 * v)) or (w > (1.05 * v))
then Keur:= ' > 5% !!!' else Keur:= ' < 5%';
TextOut(1100, 2100, Str + Keur);
v:= FResultaten[2][1]; Str:= v; Delete(Str, 7, 20);
TextOut(2100, 1800, Str);
w:= FResultaten[2][2]; Str:= w; Delete(Str, 7, 20);
if (w < (0.95 * v)) or (w > (1.05 * v))
then Keur:= ' > 5% !!!' else Keur:= ' < 5%';
TextOut(2100, 1950, Str + Keur);
w:= FResultaten[2][3]; Str:= w; Delete(Str, 7, 20);
if (w < (0.95 * v)) or (w > (1.05 * v))
then Keur:= ' > 5% !!!' else Keur:= ' < 5%';
TextOut(2100, 2100, Str + Keur);
v:= FResultaten[3][1]; Str:= v; Delete(Str, 7, 20);
TextOut(3100, 1800, Str);
w:= FResultaten[3][2]; Str:= w; Delete(Str, 7, 20);
if (w < (0.95 * v)) or (w > (1.05 * v))
then Keur:= ' > 5% !!!' else Keur:= ' < 5%';
TextOut(3100, 1950, Str + Keur);
w:= FResultaten[3][3]; Str:= w; Delete(Str, 7, 20);
if (w < (0.95 * v)) or (w > (1.05 * v))
then Keur:= ' > 5% !!!' else Keur:= ' < 5%';
TextOut(3100, 2100, Str + Keur);
PolyLine([Point(500, 3000),Point(500, 4000),Point(4500, 4000)]);
end;
EndDoc;
Logo.Free;
end;
end;
end;
Nu wordt alles uitgeprint, zoals resultaten en een x- en y-as, maar in de code staat nog niet dat hij de grafiek 'ziet' en kan uitprinten.
Bookmarks