Главная страница
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.03 c
1-48495
AHTOH
2003-08-28 23:02
2003.09.15
Звук при нажатии enter в TEdit


1-48627
GreatMaster
2003-09-03 09:19
2003.09.15
D6-7 - юникод русских букв в DFM как отключить?


1-48572
Evgeniy_K
2003-09-04 11:14
2003.09.15
Модуль


14-48721
Е-Моё имя
2003-08-27 14:32
2003.09.15
Тема


8-48658
tesd
2003-05-15 14:53
2003.09.15
Аналог паскалевского graph для дельфи.