Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Delphi: Общие вопросы > Lazarus – TImage и OnResize


Автор: Jin X 30.11.17, 20:39
Вопрос касается именно Lazarus'а, т.к. в Delphi такого глюка нет.

Image привязан якорями (Anchors) к форме.
Однако, если поменять размер формы, то размер канваса не меняется (в Delphi тоже).
Изменить размер канваса можно, например, так (из OnResize формы):
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
      Image1.Picture.Bitmap.Width := Image1.Width;
      Image1.Picture.Bitmap.Height := Image1.Height;

Но тут есть нюанс: при увеличении размера окна появляются чёрные куски в той области, где происходит увеличение.
Как сделать, чтобы такого не было?

Скажем, вот такой код:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    procedure TForm1.FormResize(Sender: TObject);
    begin
      with Image1.Canvas, Image1 do
      begin
        Picture.Bitmap.SetSize(Width, Height);
        Brush.Color := clYellow;
        FillRect(ClipRect);
      end;
    end;
в Delphi работает прекрасно, а вот в Lazarus появляются чёрные глюки...

Автор: Jin X 01.12.17, 07:59
Видео: https://cloud.mail.ru/public/LVTc/2QVMfnBBQ

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)