Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.046 c
1-48558
Vest
2003-09-01 19:17
2003.09.15
Убрать ScrollBar MDI формы


3-48419
sash2
2003-08-25 22:28
2003.09.15
Копирвание Dbf файлов.


3-48399
rh
2003-08-26 12:39
2003.09.15
Записать текущую дату


3-48483
Владий
2003-08-26 13:12
2003.09.15
Помогите с запросом - как исправить?...


1-48499
Urvin
2003-09-02 18:47
2003.09.15
Как использовать WM_...




   Наверх