![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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 |