TCanvas.StretchDraw
malt eine Grafik auf eine Leinwand in einem bestimmten rechteckigen Bereich. Das Rechteck sollte, muss aber nicht, innerhalb der Grenzen der Leinwand liegen. Der Eigentümer der Leinwand legt diese Grenzen fest. In Ihrem Fall scheint der Besitzer der Leinwand der TGraphicControl
Objekt.
Wenn Sie möchten, dass zwei Grafiken nebeneinander gemalt werden, dann müssen Sie die TRect
die Sie zum Zeichnen der ersten Grafik verwenden, sollte ein Rechteck darstellen, das an die TRect
die Sie für die zweite Grafik verwenden. Sie haben noch keinen Code gezeigt, daher ist es schwer zu sagen, was schief läuft.
Wenn Sie denselben TRect
Variable für beide Aufrufe von StretchDraw
dann müssen Sie sicherstellen, dass Sie ändern. die Position des Rechtecks zwischen den Aufrufen - ändern Sie die Left
Eigentum, für den Anfang.
Zum Beispiel:
var
r: TRect;
begin
r := ClientRect;
// First rectangle takes up left half of control
r.Right := r.Right div 2;
Canvas.StretchDraw(r, graphic1);
// Shift the rectangle to the right half
r.Left := r.Right;
r.Right := ClientRect.Right;
Canvas.StretchDraw(r, graphic2);
end;