Показать сообщение отдельно
Старый 09.09.2011, 14:33   #12   
///
 
Аватар для -=Женек=-
 
Сообщений: 9,552
Регистрация: 02.04.2005
Возраст: 45

-=Женек=- вне форума Не в сети
Вот что выясняется в ходе экспертиментов:

1. Без Inavalidate не работает. То есть даже TImage нужна принудительная перерисовка.
2. Если на OnMouseMove поставить загрузку картинки в TImage - invalidate не нужен.

Получилось реально работающее вот что:
Цитата:
void __fastcall TForm1::ImageMouseMove(TObject *Sender, TShiftState Shift, int X,
int Y)
{
int i,j;
Form1->Image->Picture->LoadFromFile("tire2.bmp");
_m_pGraphics = new Gdiplus::Graphics(Form1->Image->Canvas->Handle);
// _m_pGraphics_Layer1 = new Gdiplus::Graphics(Form1->Image->Canvas->Handle);
//_m_ppen = new Pen(Gdiplus::Color(255,255,180,180));

// _m_pbrush= new SolidBrush(Gdiplus::Color(55, 255, 0, 0));




_m_pGraphics->SetSmoothingMode(Gdiplus::SmoothingModeNone);

_m_ppen->SetLineCap(2, 2, 0);

_m_ppen->SetColor(Gdiplus::Color(255, 190, 190, 190));
_m_ppen->SetWidth(1);

//рисуем сетку
for (i=0; i <= 60; i++) _m_pGraphics->DrawLine(_m_ppen, 0,i*10,700,i*10);
for (j=0; j <= 70; j++) _m_pGraphics->DrawLine(_m_ppen, j*10,0,j*10,600);

//меняем карандаш для рисования движущейся линии
_m_pGraphics->SetSmoothingMode(Gdiplus::SmoothingModeHighQualit y);
_m_ppen->SetColor(Gdiplus::Color(255, 255, 90, 90));
_m_ppen->SetWidth(5);

_m_pGraphics->DrawLine(_m_ppen, 0,600-50,X,Y); // ее родимую и двигаю


}