//Zeichnen der Werte -Wenn Bedarf besteht.
If neueAnsicht
Then
begin
For i := roundedIndexBegin
To roundedIndexEnde
do
begin
X := Round( (i-roundedIndexBegin-verhaeltnisBeginn) * massstabX);
Y := Round( friedmanresults[i]*massstabY );
drawBalken( X, innerImageHoehe, Y, balkenstaerke,
RGB(205, 205, 205),
RGB(130, 130, 130),
RGB(225, 10, 45), kappenstaerke, innerIMG, false);
innerIMG.Canvas.Pen.Color :=
RGB(70, 200, 0);
If (i-roundedIndexBegin)
mod abstandText = 0
Then outerIMG.Canvas.TextOut(X+balkenstaerke
div 2, outerImageHoehe-marginBottom+3, IntToStr(i-roundedIndexBegin+1));
If i<roundedIndexEnde
Then
begin
XNext := Round( ((i+1)-roundedIndexBegin-verhaeltnisBeginn) * massstabX);
YNext := Round( friedmanresults[i+1]*massstabY );
drawLine(X+balkenstaerke, innerImageHoehe-Y, XNext, innerImageHoehe-YNext,
RGB(180, 180, 180), innerIMG);
end;
end;
saveInnerBitmap.Assign(innerIMG);
saveOuterBitmap.Assign(outerIMG);
end
//Wenn kein Grund zum Neuzeichnen besteht kann das Bild hier aus einer alten Bitmap geladen werden.
else
begin
innerIMG.Assign(saveInnerBitmap);
outerIMG.Assign(saveOuterBitmap);
end;
//Zeichnen des Rechtecks
ImageFriedmanAnalyse.Cursor := crDefault;
If ( mouseX > marginLeft )
And ( mouseY < innerImageHoehe-marginBottom )
And ( mouseX <> -1 )
And ( mouseY <> -1 )
Then
begin
innerIMG.Canvas.Brush.Style := bsClear;
widthZoomRect := Round(zoomValue*innerIMG.Width);
XZoomRect := mouseX-widthZoomRect
div 2 - marginLeft;
if XZoomRect < 0
Then XZoomRect := 0;
if XZoomRect > innerIMG.Width-widthZoomRect
Then XZoomRect := innerIMG.Width-widthZoomRect;
innerIMG.Canvas.Pen.Color :=
RGB(30, 40, 90);
innerIMG.Canvas.Rectangle(XZoomRect, 0, XZoomRect+widthZoomRect, innerImageHoehe);
innerIMG.Canvas.Brush.Style := bsSolid;
removedZoomRect := false;
end;
//Zuweisen der Bilder auf ein TImage.
//Zeichnen des Bildes MIT Rechteck (Rahmen) auf ein TImage
ImageFriedmanAnalyse.Canvas.Draw(0, 0, outerIMG);
ImageFriedmanAnalyse.Canvas.Draw(marginLeft, 0, innerIMG);