przesuniecie wszystkiego w TImage

0

jak moge przesunac caly obraz wyswietlany na Timage o kilka pikseli w dol? [???]

0

Zalezy w jaki sposób, jeżeli chcesz by obraz cwczesniejszy pozostał, to napiałem cos takiego:

int px=5, py=5;  //px-przesuniecie poziome, py-przesunecie pionowe
Image1->Canvas->CopyRect(Rect(px,py,Image1->Width, Image1->Height),Image1->Canvas, Rect(0,0,Image1->Width-px, Image1->Height-py));

Ale jezeli ma sie w miejscu przesuniecia pojawic biala plama to tak:

Graphics::TBitmap *Bmp = new Graphics::TBitmap;
Bmp->Width = Image1->Width;
Bmp->Height = Image1->Height;
Bmp->Canvas->CopyRect(Rect(0,0,Image1->Width, Image1->Height),Image1->Canvas, Rect(0,0,Image1->Width, Image1->Height));
Image1->Picture = NULL;
int px=5, py=5;  //px-przesuniecie poziome, py-przesunecie pionowe
Image1->Canvas->CopyRect(Rect(px,py,Image1->Width, Image1->Height),Bmp->Canvas, Rect(0,0,Image1->Width-px, Image1->Height-py));
delete Bmp;

PS> domyslam sie nastepnego pytania:) co zrobić zeby nie migalo Image1: Jeżeli stoi bezposrednio na Formie to:

Form1->DoubleBuffered=true;
0

dzieki za pomoc, o doublebuffered juz wiedzialem :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1