Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

вопрос по Canvas [D7]


Zet ©   (2014-02-12 13:16:00) 

Сразу набросочек чтобы пояснить суть проблемы

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ExtCtrls;

type
 TForm1 = class(TForm)
   Image1: TImage;
   procedure FormCreate(Sender: TObject);
   procedure Image1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 BitMap: TBitmap;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 Image1.Canvas.Pen.Color := clRed;
 Image1.Canvas.Brush.Color := clBlack;
 Image1.Canvas.Rectangle(0,0, Image1.Width, Image1.Height);

 BitMap := TBitmap.Create;
 BitMap.LoadFromFile('test.bmp');
end;

procedure TForm1.Image1Click(Sender: TObject);
begin
 BitBlt(Image1.Canvas.Handle,0,0,20,20,BitMap.Canvas.Handle,10,10, SRCCOPY);
end;

end.


Вопрос: почему не копируется BitMap на Image1, если мы в OnCreate нарисовали первым делом черных квадрат


Zet   (2014-02-12 14:34:00) [1]

Спасибо.


icWasya   (2014-02-12 13:52:00) [2]

Canvas не чувствует вызовы низкоуровневых функций.
после BitBlt сделайте Image1.Invalidate;


Наверх

Титульная страница Поиск, карта сайта Написать письмо