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

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

Растягивание имаджа [D7, XP]


Zap ©   (2005-09-25 17:11:00) 

Около Image я поставил Shape при перетаскивании которого изменяется размер Image. Тут же выяснилось, что изменять размеры имаджа во время работы программы можно только когда Stretch = true...В итоге получается, что при растягивании имаджа, растягивается все изображение на нем...мне же нужно чтоб все это получалось как в Paintе. Я чо-то не так делаю или это нужно както обойти? Подскажите плз. заранее спасибо


Zap   (2005-09-25 17:44:00) [1]

вот собственно код, если что
procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
drag := true;
end;

procedure TForm1.Shape1MouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
var p : TPoint;
begin
{ПЕРЕТАСКИВАНИЕ}
if drag = true then
begin
Image1.Stretch := true;
{Определение координат}
p.X := x;
p.y := y;
p := Form1.ScreentoClient(Shape1.ClientToScreen(p));
{перетаскивание имаджа}
if (p.X >= Image1.Left) and (p.Y >= Image1.Top) then begin
Image1.Width := p.X - Image1.Left;
Image1.Height := p.y - Image1.Top;
{перетаскивание шейпа}
Shape1.left := p.x;
SHape1.Top := p.Y;
end;
end;
{ПЕРЕТАСКИВАНИЕ}
drag := false;
image1.stretch := false;
end;


Наверх

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