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

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

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.08.2011, 23:42   #11
faustpatron13
Пользователь
 
Регистрация: 05.08.2010
Сообщений: 18
По умолчанию

обоже, ну зачем язвить?
если знаете как это сделать, помогите тому, кто не знает, не знаете - так и скажите.
faustpatron13 вне форума Ответить с цитированием
Старый 12.08.2011, 00:27   #12
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вам максимум будет нужен массив кадров, так это массив битмапов(ибо канва лишь кисточка(образно говоря) сама по себе она не хранит данные)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.08.2011, 11:14   #13
crazy horse
ios developer
Старожил
 
Аватар для crazy horse
 
Регистрация: 16.11.2007
Сообщений: 2,885
По умолчанию

2mss
Господи Исусе, сколько пустого, никому не нужного текста. Не знаете чем помочь? Нечем заняться на рабочем месте? Ради бога, почитайте лучше книгу, не надо набивать сюда посты.
Цитата:
Или "чукча не читатель - чукча писатель" ?
Цитата:
обоже, ну зачем язвить?
если знаете как это сделать, помогите тому, кто не знает, не знаете - так и скажите.
Не обращай внимания, похоже на пмс
http://delphiexpert.ru/view_lesson.php?id=21
если этого не хватит - лезем в гугл и пишем: "delphi программная анимация."
Делайте что хотите, но чтобы через полчаса в лесу было светло, сухо и медведь!

Последний раз редактировалось crazy horse; 12.08.2011 в 11:20.
crazy horse вне форума Ответить с цитированием
Старый 12.08.2011, 11:37   #14
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

DrawObjects



Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 12.08.2011, 17:55   #15
faustpatron13
Пользователь
 
Регистрация: 05.08.2010
Сообщений: 18
По умолчанию

Подскажите пожалуйста, где ошибка?

Вот код
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, Grids, StdCtrls;

type
  TForm1 = class(TForm)
    Frames: TStringGrid;
    Page: TImage;
    procedure PageMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure PageMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure PageMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormCreate(Sender: TObject);
    procedure FramesClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  f:boolean = false;
  Can : array of TCanvas;
  n:integer = 0;

implementation

{$R *.dfm}

procedure TForm1.PageMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
f:=true;
page.canvas.MoveTo(x,y);
end;

procedure TForm1.PageMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if f then page.canvas.LineTo(x,y);
end;

procedure TForm1.PageMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
Var t:integer;
begin
f:=false;
for t := n to 9 do
    can[t] := page.Canvas;
end;

procedure TForm1.FormCreate(Sender: TObject);
var i : Integer;
begin
  SetLength(Can, 10);
  for i := 0 to 9 do
    Can[i] := TCanvas.Create;
    page.canvas.Pen.Color:=clWhite;
    page.Canvas.Rectangle(0,0,page.Width,page.Height);
    page.canvas.Pen.Color:=clBlack;
  for i := 0 to 9 do
    can[i] := page.Canvas;
  for i := 0 to 9 do
    frames.Cells[i,0]:= inttostr(i+1);
  BitBlt(page.canvas.Handle, 0, 0, width, height, Can[0].Handle, 0, 0, SRCCOPY);
end;

procedure TForm1.FramesClick(Sender: TObject);
begin
n:=frames.Col;
BitBlt(page.canvas.Handle, 0, 0, width, height, Can[frames.col].Handle, 0, 0, SRCCOPY);
end;

end.
ну и сам исходник прилагается
Вложения
Тип файла: rar Flash.rar (189.8 Кб, 7 просмотров)
faustpatron13 вне форума Ответить с цитированием
Старый 12.08.2011, 19:53   #16
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Цитата:
где ошибка?
В ДНК ошибка.

По-русски же сказано - бессмысленно создавать массив холстов, ибо TCanvas не более чем оболочка над GDI.
Но русский ты не понимаешь из-за ошибки см. выше. И настырно лепишь абсолютно бестолковую дюжину холстов

Код:
 for i := 0 to 9 do
    Can[i] := TCanvas.Create;
mss вне форума Ответить с цитированием
Старый 12.08.2011, 21:03   #17
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
mss
Еще раз услышу от тебя флуд - пойдешь в баню
Цитата:
где ошибка?
У тебя канвасы ни к чему не привязаны. Они хендла не имеют.

Вот я слегка набросал эскизик:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, Grids, StdCtrls;

type
  TForm1 = class(TForm)
    Frames: TStringGrid;
    Page: TImage;
    procedure FormCreate(Sender: TObject);
    procedure FramesSelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  f:boolean = false;
  Can : array[1..10] of TBitmap;
  n:integer = 0;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
 for i:=1 to 10 do begin
  can[i]:=TBitmap.Create;
  with can[i] do begin
   Width:=Page.Width;
   Height:=Page.Height;
   Canvas.Rectangle(1,1,random(Width),random(Height));
  end;
 end;
end;

procedure TForm1.FramesSelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
 with Page.Canvas do  begin FillRect(ClientRect);
  BitBlt(Handle,1,1,Width,Height,can[ACol].Canvas.Handle,0,0,SRCCOPY);
 end;
end;

end.
I'm learning to live...

Последний раз редактировалось Stilet; 12.08.2011 в 21:10.
Stilet вне форума Ответить с цитированием
Старый 15.08.2011, 21:20   #18
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию

Немного не в то русло, как ты хочешь сделать, но: почему бы не сделать анимацию во флэш (что гораздо проще, чем в Delphi) и загрузить как объект Flash в Delphi? (есть компонент отображения swf)
kettanaito вне форума Ответить с цитированием
Старый 16.08.2011, 00:41   #19
crazy horse
ios developer
Старожил
 
Аватар для crazy horse
 
Регистрация: 16.11.2007
Сообщений: 2,885
По умолчанию

Для этого, как минимум, надо еще и в as3 въезжать. Что не так просто, как кажется - это полноценный язык с жуткими фреймворками и невменяемым garbage collector'ом. Ps. Я уже писал на тему блитинга векторной анимации - она жрет ресурсы ппц.. Там свои заморочки.
Делайте что хотите, но чтобы через полчаса в лесу было светло, сухо и медведь!
crazy horse вне форума Ответить с цитированием
Старый 01.09.2011, 03:32   #20
Lesha
Форумчанин
 
Аватар для Lesha
 
Регистрация: 30.01.2009
Сообщений: 418
По умолчанию

как вы относитесь к запуску в delphi flash плеера через WebBrowser для воспроизведения музыки и видео роликов формата mp4 ?
Lesha вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как установить Флеш плеер ActixeX в делфи 2009 paxan86 Мультимедиа в Delphi 0 18.05.2011 21:36
Флеш sremators Фриланс 0 13.12.2010 20:32
Скачать Флеш Shiki Свободное общение 16 17.11.2010 15:57
Флеш+скрипт сла JavaScript, Ajax 1 07.10.2010 22:11