TCanvas.StretchDraw
рисует графику на холсте в заданной прямоугольной области. Прямоугольник должен, но не должен быть, в пределах границ холста. Владелец холста определяет эти границы. В вашем случае кажется, что владельцем холста является TGraphicControl
объект.
Если вы хотите, чтобы два рисунка были нарисованы рядом друг с другом, то TRect
, который вы используете для рисования первого рисунка, должен представлять собой прямоугольник, смежный с TRect
, который вы используете для второго рисунка. Вы еще не показывали код, поэтому трудно сказать, что происходит.
Если вы используете одну и ту же переменную TRect
для обоих вызовов StretchDraw
, вам необходимо убедиться, что вы изменили положение прямоугольника между вызовами - для начала измените свойство Left
.
Например:
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;