Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.02.2011, 17:06
kriv0y kriv0y вне форума
Новичок
 
Регистрация: 20.02.2011
Адрес: Луганжелес
Сообщения: 60
Версия Delphi: 7.
Репутация: 10
По умолчанию Слайдшоу из картинок загруженных на форму

Я на форму при помощу десяти кнопок загружаю столько же картинок. ТEdit`ы для того что бы картинки после загрузки можно было назвать. Хочу сделать слайд шоу из них, но никак не разберусь как можно слайдшоу это реализовать.


Последний раз редактировалось kriv0y, 21.02.2011 в 17:22.
Ответить с цитированием
  #2  
Старый 21.02.2011, 19:11
iGeTT iGeTT вне форума
Прохожий
 
Регистрация: 23.12.2010
Адрес: Moscow
Сообщения: 38
Версия Delphi: 7 Lite
Репутация: 10
По умолчанию

Создай массив из путей к файлам, а дальше по таймеру отображай картинки одну за другой. И пара кнопок на запуск и остановку таймера.
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if i=10 then i:=0;
  Inc(i);
  Image1.Picture.LoadFromFile(pathToImage[i]);
end;
Ответить с цитированием
  #3  
Старый 21.02.2011, 19:57
kriv0y kriv0y вне форума
Новичок
 
Регистрация: 20.02.2011
Адрес: Луганжелес
Сообщения: 60
Версия Delphi: 7.
Репутация: 10
По умолчанию

так у меня пути каждый раз разные, они же не могут быть по порядку
Ответить с цитированием
  #4  
Старый 21.02.2011, 20:00
kriv0y kriv0y вне форума
Новичок
 
Регистрация: 20.02.2011
Адрес: Луганжелес
Сообщения: 60
Версия Delphi: 7.
Репутация: 10
По умолчанию

Может мне создать десять кнопок и на каждый клик передовать картинку из одного timage в другой. timage1.picture:=timage2.picture;
Ответить с цитированием
  #5  
Старый 21.02.2011, 20:04
iGeTT iGeTT вне форума
Прохожий
 
Регистрация: 23.12.2010
Адрес: Moscow
Сообщения: 38
Версия Delphi: 7 Lite
Репутация: 10
По умолчанию

Код:
var PathToFile: array [1..10] of string;
for i:=1 to 10 do
  PathToFile[i]:=Edit[i].Text
P.S. Поправил*

Последний раз редактировалось iGeTT, 21.02.2011 в 20:14.
Ответить с цитированием
  #6  
Старый 21.02.2011, 20:30
kriv0y kriv0y вне форума
Новичок
 
Регистрация: 20.02.2011
Адрес: Луганжелес
Сообщения: 60
Версия Delphi: 7.
Репутация: 10
По умолчанию

Спасибо за помощь, но что то он красным подчеркивает
Ответить с цитированием
  #7  
Старый 21.02.2011, 20:36
iGeTT iGeTT вне форума
Прохожий
 
Регистрация: 23.12.2010
Адрес: Moscow
Сообщения: 38
Версия Delphi: 7 Lite
Репутация: 10
По умолчанию

Всмысле? Ошибка при компиляции?
Ответить с цитированием
  #8  
Старый 21.02.2011, 20:47
kriv0y kriv0y вне форума
Новичок
 
Регистрация: 20.02.2011
Адрес: Луганжелес
Сообщения: 60
Версия Delphi: 7.
Репутация: 10
По умолчанию

А я, увидил, что ты подправил обьявление массива, но я не пойму куда вставлять for i:=1 to 10 do
PathToFile[i]:=Edit[i].Text
Ответить с цитированием
  #9  
Старый 21.02.2011, 21:53
iGeTT iGeTT вне форума
Прохожий
 
Регистрация: 23.12.2010
Адрес: Moscow
Сообщения: 38
Версия Delphi: 7 Lite
Репутация: 10
По умолчанию

Ну как куда... Ты все десять файлов выбрал, а на кнопку это в повесь. И еще на кнопку кинь Timer1.Enabled=true;
И в таймер пропиши то, что я вначале писал.
Я бы написал код, но сейчас нет возможности.
Ответить с цитированием
  #10  
Старый 21.02.2011, 22:07
iGeTT iGeTT вне форума
Прохожий
 
Регистрация: 23.12.2010
Адрес: Moscow
Сообщения: 38
Версия Delphi: 7 Lite
Репутация: 10
По умолчанию

Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var i: Integer;
begin
  if i=10 then i:=0;
  Inc(i);
  Image1.Picture.LoadFromFile(Path[i]);
end;

procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
begin
 for i:=1 to 10 do
   Path[i]:=OpenDialog[i].FileName;
 Timer1.Enabled:=True;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Timer1.Enabled:=False;
end;
Button1 - запуск
Button2 - остановка
Ожидается, что все OpenDialog заполнены.
Не забудь по умолчанию у таймера поставить Enabled в false.
И в начале, в var объяви массив:
Код:
var Path: array [1..10] of string;
Ответить с цитированием
  #11  
Старый 21.02.2011, 22:40
kriv0y kriv0y вне форума
Новичок
 
Регистрация: 20.02.2011
Адрес: Луганжелес
Сообщения: 60
Версия Delphi: 7.
Репутация: 10
По умолчанию

Сообщаяет о undeclared identifier





Код:
вот мой весь код


unit Unit7;

interface

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

type
  TForm7 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Edit10: TEdit;
    Image4: TImage;
    Image5: TImage;
    Image6: TImage;
    Image7: TImage;
    Image8: TImage;
    Image9: TImage;
    Image10: TImage;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Button11: TButton;
    Button12: TButton;
    OpenDialog1: TOpenDialog;
    OpenDialog2: TOpenDialog;
    OpenDialog3: TOpenDialog;
    OpenDialog4: TOpenDialog;
    OpenDialog5: TOpenDialog;
    OpenDialog6: TOpenDialog;
    OpenDialog7: TOpenDialog;
    OpenDialog8: TOpenDialog;
    OpenDialog9: TOpenDialog;
    OpenDialog10: TOpenDialog;
    Image11: TImage;
    Label11: TLabel;
    Timer1: TTimer;
    Button13: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);


  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form7: TForm7;
   p1n:string;
   p2n:string;
   p3n:string;
   p4n:string;
   p5n:string;
   p6n:string;
   p7n:string;
   p8n:string;
   p9n:string;
   p10n:string;
   i:integer;
   Path: array [1..10] of string;




   implementation

{$R *.dfm}



procedure TForm7.Button10Click(Sender: TObject);
begin

 if opendialog10.execute then
 image10.Picture.loadfromfile (opendialog10.filename);
 edit10.Clear;
 edit10.Visible:=true;

end;

procedure TForm7.Button11Click(Sender: TObject);
begin
   p1n:=edit1.text;
   p2n:=edit2.text;
   p3n:=edit3.Text;
   p4n:=edit4.Text;
   p5n:=edit5.Text;
   p6n:=edit6.Text;
   p7n:=edit7.Text;
   p8n:=edit8.Text;
   p9n:=edit9.Text;
   p10n:=edit10.Text;



   label1.Caption:=p1n;
   label2.Caption:=p2n;
   label3.Caption:=p3n;
   label4.Caption:=p4n;
   label5.Caption:=p5n;
   label6.Caption:=p6n;
   label7.Caption:=p7n;
   label8.Caption:=p8n;
   label9.Caption:=p9n;
   label10.Caption:=p10n;


   edit1.Visible:=false;
   edit2.Visible:=false;
   edit3.Visible:=false;
   edit4.Visible:=false;
   edit5.Visible:=false;
   edit6.Visible:=false;
   edit7.Visible:=false;
   edit8.Visible:=false;
   edit9.Visible:=false;
   edit10.Visible:=false;

   button1.Visible:=false;
   button2.Visible:=false;
   button3.Visible:=false;
   button4.Visible:=false;
   button5.Visible:=false;
   button6.Visible:=false;
   button7.Visible:=false;
   button8.Visible:=false;
   button9.Visible:=false;
   button10.Visible:=false;


end;












procedure TForm7.Button12Click(Sender: TObject);
  var i: Integer;
begin
 for i:=1 to 10 do
   Path[i]:=OpenDialog[i].FileName;
 Timer1.Enabled:=True;
end;

procedure TForm7.Button13Click(Sender: TObject);
begin

 Timer1.Enabled:=False;

end;

procedure TForm7.Button1Click(Sender: TObject);
begin
 if opendialog1.execute then
 image1.Picture.loadfromfile (opendialog1.filename);
 edit1.Clear;
 edit1.Visible:=true;
 button11.Enabled:=true;
 button2.Enabled:=true;

end;

procedure TForm7.Button2Click(Sender: TObject);
begin
    if opendialog2.execute then
 image2.Picture.loadfromfile (opendialog2.filename);
 edit2.Clear;
 edit2.Visible:=true;
  button3.Enabled:=true;

end;

procedure TForm7.Button3Click(Sender: TObject);
begin
   if opendialog3.execute then
 image3.Picture.loadfromfile (opendialog3.filename);
 edit3.Clear;
 edit3.Visible:=true;
  button4.Enabled:=true;
end;

procedure TForm7.Button4Click(Sender: TObject);
begin
      if opendialog4.execute then
 image4.Picture.loadfromfile (opendialog4.filename);
 edit4.Clear;
 edit4.Visible:=true;
  button5.Enabled:=true;
end;

procedure TForm7.Button5Click(Sender: TObject);
begin
   if opendialog5.execute then
 image5.Picture.loadfromfile (opendialog5.filename);
 edit5.Clear;
 edit5.Visible:=true;
  button6.Enabled:=true;
end;

procedure TForm7.Button6Click(Sender: TObject);
begin
   if opendialog6.execute then
 image6.Picture.loadfromfile (opendialog6.filename);
 edit6.Clear;
 edit6.Visible:=true;
  button7.Enabled:=true;
end;

procedure TForm7.Button7Click(Sender: TObject);
begin
 if opendialog7.execute then
 image7.Picture.loadfromfile (opendialog7.filename);
 edit7.Clear;
 edit7.Visible:=true;
  button8.Enabled:=true;
end;

procedure TForm7.Button8Click(Sender: TObject);
begin
     if opendialog8.execute then
 image8.Picture.loadfromfile (opendialog8.filename);
 edit8.Clear;
 edit8.Visible:=true;
  button9.Enabled:=true;
end;

procedure TForm7.Button9Click(Sender: TObject);
begin
               if opendialog9.execute then
 image9.Picture.loadfromfile (opendialog9.filename);
 edit9.Clear;
 edit9.Visible:=true;
  button10.Enabled:=true;
end;










procedure TForm7.Timer1Timer(Sender: TObject);
var i: Integer;
begin
  if i=10 then i:=0;
  Inc(i);
  Image1.Picture.LoadFromFile(Path[i]);


end;



end.

Последний раз редактировалось kriv0y, 21.02.2011 в 23:08.
Ответить с цитированием
  #12  
Старый 21.02.2011, 23:04
iGeTT iGeTT вне форума
Прохожий
 
Регистрация: 23.12.2010
Адрес: Moscow
Сообщения: 38
Версия Delphi: 7 Lite
Репутация: 10
По умолчанию

Айайай, в [code] кто будет код помещать?
По сабжу: тогда по старинке
Код:
procedure TForm7.Button12Click(Sender: TObject);
begin
Path[1]:=OpenDialog[1].FileName;
Path[2]:=OpenDialog[2].FileName;
Path[3]:=OpenDialog[3].FileName;
Path[4]:=OpenDialog[4].FileName;
Path[5]:=OpenDialog[5].FileName;
Path[6]:=OpenDialog[6].FileName;
Path[7]:=OpenDialog[7].FileName;
Path[8]:=OpenDialog[8].FileName;
Path[9]:=OpenDialog[9].FileName;
Path[10]:=OpenDialog[10].FileName;
Timer1.Enabled:=True;
end;
Ответить с цитированием
  #13  
Старый 21.02.2011, 23:32
kriv0y kriv0y вне форума
Новичок
 
Регистрация: 20.02.2011
Адрес: Луганжелес
Сообщения: 60
Версия Delphi: 7.
Репутация: 10
По умолчанию

Думал, что тег [code] не надо закрывать обязательно как в хтмл, вот оно и не сработало.

поменял на Opendialog без [] и компилятор перестал ругаться.
Path[1]:=OpenDialog1.FileName;

пару секунд думает и сообщает при когда на 12 кнопку нажимаю которая слайд шоу запускает такую ошибку.
Хотя разные варианты пробывал. И только Jpeg и чисто bmp, и вперемешку.
Ответить с цитированием
  #14  
Старый 21.02.2011, 23:38
iGeTT iGeTT вне форума
Прохожий
 
Регистрация: 23.12.2010
Адрес: Moscow
Сообщения: 38
Версия Delphi: 7 Lite
Репутация: 10
По умолчанию

Поставь на каждую кнопку код (меняй цифры 1 в зависимости от номера кнопки)
Код:
if OpenDialog1.Execute then Path[1]:=OpenDialog1.FileName;
Ответить с цитированием
  #15  
Старый 22.02.2011, 00:17
kriv0y kriv0y вне форума
Новичок
 
Регистрация: 20.02.2011
Адрес: Луганжелес
Сообщения: 60
Версия Delphi: 7.
Репутация: 10
По умолчанию

Твоя функция возвращает невероятно доброе отношение ко мне, но по запуске слайд шоу показывает, что память не может быть прочитана и адресс её в шестнадцатиричном.

останавливаеться вот на этой строке Image1.Picture.LoadFromFile(path[i]);

это в таймере загрузка картинки на форму

Код:
procedure TForm7.Timer1Timer(Sender: TObject);
var i: Integer;
begin
  if i=10 then i:=0;
  Inc(i);
  Image1.Picture.LoadFromFile(path[i]);


Последний раз редактировалось kriv0y, 22.02.2011 в 00:24.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:52.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025