![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Это что-то вроде имитации ЭКГ- выбираем один фрагмент и циклично двигаем его по всей форме. Начал было так (см. вложение), но где-то ошибка 
		
	
		
		
			  Необходимо чтобы рисунок выходил четко с левого края и не оставался след | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Вирус у тебя в аттаче, как-то реши эту проблему, во-первых 
		
	
		
		
		
		
		
	
		
		
	
	
	  , а потом и насчет проблемы посмотрим![]()  | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Привожу код: 
		
	
		
		
		
		
		
		
			Код: 
	var
Background, bitmap, Buf : TBitMap;
BackRct : TRect;
BufRct: Trect;
x,y:integer;
W,H: integer;
procedure TForm1.FormActivate(Sender: TObject);
begin
form1.DoubleBuffered:=true;
Background := TBitmap.Create;
bitmap := TBitmap.Create;
Buf := TBitmap.Create;
Background.LoadFromFile('sea.bmp'); //загружаем фон
Form1.Image1.canvas.Draw(0,0,Backgr ound);
bitmap.LoadFromFile('ship.bmp'); //загружаем рисунок, к.т. движется
bitmap.Transparent := True;
bitmap.TransParentColor := bitmap.canvas.pixels[1,1];
W:= bitmap.Width;
H:= bitmap.Height;
Buf.Width:= W;
Buf.Height:=H;
Buf.Palette:=Background.Palette;
Buf.Canvas.CopyMode:=cmSrcCopy;
BufRct:=Bounds(0,0,W,H);
x := W+bitmap.Width;
y := 50;
BackRct:=Bounds(x,y,W,H);
Buf.Canvas.CopyRect(BufRct,Backgrou nd.Canvas,BackRct);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
{Form1.image1.canvas.Draw(x,y,Buf); }
Dec(x);
if x < -bitmap.Width then x := 0;
{Invalidate;}
BackRct:=Bounds(x,y,W,H);
Buf.Canvas.CopyRect(BufRct,Backgrou nd.Canvas,BackRct);
Form1.image1.Canvas.Draw(x, y, bitmap);
Form1.image1.Canvas.Draw(x+bitmap.W idth, y, bitmap);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Background.Free;
bitmap.Free;
Buf.Free;
end;Последний раз редактировалось Admin, 24.02.2012 в 09:32.  | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Я, к сожалению, не понял предназначение проекта (что и как должно работать). Чтоб небыло размытия, нужно рисовать на имаге так: сначала бэккграунд, а потом корабль. Отсчет координат на канве таковой: 0,0 - левый верхний угол, прирост х - слева направо, прирост y - сверху вниз. 
		
	
		
		
		
		
		
	
		
		
	
	
	Тоесть, чтоб двигаться слева-направо, нужно inc(x), начиная с нуля. Лучше перезалей аттач без exшника. У меня тоже Дельфи   , но как вирус не распознается. | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Перезаливаю архив... 
		
	
		
		
			 | 
| 
		 
			 
			#6  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Вот мой вариант, ничего не удалял, тока закомментировал, и дописал свое. 
		
	
		
		
			 | 
| 
		 
			 
			#7  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 RomanRens, если все антивирусы ругаются на твои проекты - скорее всего делфи заражена широко известным индюком (Induc). О борьбе с этим вирусом куча статей в интернете. Сам по себе он ничего не делает, только размножается через компилируемые делфой проекты среди компов с установленной делфой. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#8  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Очень помогли! 
		
	
		
		
		
		
		
	
		
		
	
	
	![]()  | 
| 
		 
			 
			#9  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Здесь все для операционной системы Андройд!!!...Заходи и качай !!! 
		
	
		
		
		
		
		
	
		
		
	
	
	http://about-androids.ru/content/obz...hee-chem-pleer  |