Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2013, 23:19   #1
Человек Панда
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 75
По умолчанию Создать и обработать движение картинки на Timage, Delphi

Здравствуйте,форумчане! Столкнулся со следующей проблемой: Необходимо на форме проекта(TForm) создать картинку (Timage).Необходимо создать программно.Разместить вручную я могу,но задача другого характера:на форме должна появиться картинка,загруженная из папки с картинками, и продвинуться с правого края форма до левого(то есть горизонтально слева на право).При достижении конца формы картинка удаляется,освобождая память.Далее планирую связать с таймером и давать появление картинки в цикле. вот,что наработал.Ожидаемого эффекта нет(ничего не меняется)

Код:
var imgblock:timage;
begin
 mgblock := TImage.Create(form1);
 with imgblock do
    begin
    imgblock.Picture.Create;
    Stretch := True;
    imgblock.Left:=675;
    imgblock.Top:=333;
    imgblock.Picture.LoadFromFile('Gif\sk.gif');
       while form1.imghero.left>0 do 
       begin
       imgblock.left:=imgblock.left-1; 
       imgblock.Picture.LoadFromFile('Gif\sk.gif'); 
       application.processmessages;
       end;
  end;
end;
Человек Панда вне форума Ответить с цитированием
Старый 20.01.2013, 23:31   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

В качестве идеи:
Код:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    j:TJPEGImage;
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
  tag:=0;
  j:=TJPEGImage.Create;
  j.LoadFromFile('d:\1270446831_6301331xei.jpg');
  Timer1.Interval:=10;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
  Canvas.StretchDraw(rect(tag,0,tag+50,50),j);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if tag<Width then tag:=tag+1 else tag:=-50;
  Repaint;
end;

end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.01.2013, 23:43   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

да что Вы рассказываете?! Что может происходить, если у Вас код даже не компилируется (в коде ряд опечаток, которые и делаю код некомпилируемым).
это раз.

второе. Вы забыли задать parent для картинки. читай тут, например

третье. Движение намного лучше сразу делать в таймере.

четвертое, зачем в цикле каждый раз грузить картинку из файла?! Это неверно. Достаточно это сделать один раз, до цикла.

ну есть ещё и пятое, и шестое и т.д. но вам, думаю, пока и этого хватит...

UPDATE
оп-с.. Stilet опередил...

Последний раз редактировалось Serge_Bliznykov; 20.01.2013 в 23:49.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.01.2013, 18:54   #4
Человек Панда
Пользователь
 
Регистрация: 04.02.2011
Сообщений: 75
По умолчанию

Спасибо за помощь.Буду разбираться.
Человек Панда вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать и обработать текстовый файл (Delphi) Result007 Помощь студентам 0 06.12.2011 16:41
Движение компонента TImage. Averon C++ Builder 4 04.11.2011 20:57
Движение компонента TImage. Averon C++ Builder 0 04.11.2011 19:35
Движение картинки по форме при нажатии клавиши(delphi)) CAN-UKRAINE Помощь студентам 2 30.10.2011 18:57
задача - создать типизированный файл и обработать его на Delphi Konctantin Помощь студентам 4 12.10.2011 19:01