Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.15;
Скачать: CL | DM;

Вниз

2 Image а   Найти похожие ветки 

 
e}{e   (2003-05-17 02:25) [0]

Суть такая : есть 2 имэйджа - один большой, другой маленький. На одном(большой) линии, на другом(маленький) - прямоугольник.
Кто знает ответьте пожалуйста:
Каким образом таскать маленький Image по большому (и реально ли это вообще)?
И как для маленького Image сделать непрозрачными линии большого, т.е. чтобы при движении мал. Image упирался в лиии большого?


 
Delphi5.01 ©   (2003-05-18 10:53) [1]

...
private
{ Private declarations }
public
{ Public declarations }
ObjectBitMap: TBitMap;
BackBitMap: TBitMap;
BufferBitMap: TBitMap;
Round: Integer; //dlina kubika setki
end;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
ObjectBitMap:=TBitMap.Create;
ObjectBitMap.LoadFromFile("pic.bmp");
BackBitMap:=TBitMap.Create;
BackBitMap.LoadFromFile("bk.bmp");
BufferBitMap:=TBitMap.Create;
BufferBitMap.LoadFromFile("bk.bmp");
Round:=20;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
ObjectBitMap.Free;
BackBitMap.Free;
BufferBitMap.Free;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var xx,yy: Integer;
begin
xx:=Round*(x div Round);
yy:=Round*(y div Round); ( 0,0,BackBitMap) ...
private
{ Private declarations }
public
{ Public declarations }
ObjectBitMap: TBitMap;
BackBitMap: TBitMap;
BufferBitMap: TBitMap;
Round: Integer; //dlina kubika setki
end;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
ObjectBitMap:=TBitMap.Create;
ObjectBitMap.LoadFromFile("pic.bmp");
BackBitMap:=TBitMap.Create;
BackBitMap.LoadFromFile("bk.bmp");
BufferBitMap:=TBitMap.Create;
BufferBitMap.LoadFromFile("bk.bmp");
Round:=20;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
ObjectBitMap.Free;
BackBitMap.Free;
BufferBitMap.Free;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var xx,yy: Integer;
begin
xx:=Round*(x div Round);
yy:=Round*(y div Round);
BufferBitMap.Canvas.Draw(0,0,BackBitMap);
BufferBitMap.Canvas.Draw(xx,yy,ObjectBitMap);
Form1.Canvas.Draw(0,0,BufferBitMap);
end;

dla poluchenia ludshego rezultata ispolzui BitBlt vmesto Canvas.Draw, nemnogo rudnei vishitivat koordinati no skorost povisetsa v 8 raz kak minimum.
Jelau udachi!



Страницы: 1 вся ветка

Текущий архив: 2003.09.15;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
14-48705
Vlad Oshin
2003-08-28 12:23
2003.09.15
Про адресацию сетей


1-48580
ossa
2003-09-04 07:57
2003.09.15
Подскажите как добавить путь к новым компонентом в


1-48562
SFASS
2003-09-04 13:38
2003.09.15
Тема, как тема


1-48495
AHTOH
2003-08-28 23:02
2003.09.15
Звук при нажатии enter в TEdit


3-48394
Erik
2003-08-26 12:25
2003.09.15
Как скопировать поле их одного DataSet в другой?