-
Помогите сделать слайд шоу.Я делаю программу просмотра графических файлов.Как там сделать слайд шоу.На делфи
-
Используй TTimer
-
> [0] Вера (24.12.08 12:02)
По таймеру меняй картинки и делов.... В чем вопрос?
-
Можете примерный код привести.Я не очень понимаю как это делать(((((((
-
Это что, лаба или курсовой ?
-
Курсовая
-
Покажи что тобой уже сделано на сей момент ..
-
У меня тема курсовой Разработка программы просмотра графических файлов
-
У меня есть прога которая открывает,просматривает картинки вперед назад
-
И вот еще хотелось бы сделать слайд шоу и чтобы они поворачивались
-
Помогите пожалуйста
-
а как показать?код прислать сюда?
-
> есть прога которая открывает,просматривает картинки вперед
> назад
Она к тебе с луны свалилась ?
Или ты ее самостоятельно написала ?
Если самостоятельно, то см. [6]
-
не самостоятельно(((
-
И как же ты собралась защищать курсовой, если он чужой и ты о происходящем в нем нишиша не петришь ?
Не стыдно, а ?
-
ну вообще то я делала вместе с помощником.И что там происходит я понимаю
-
Просто я не считаю что я делала самостоятельно
-
вот так и написала
-
> что там происходит я понимаю
Чудесно.
Показ очередной картинки как реализован - по щелчку кнопки ?
-
да
-
У этой кнопки есть метод Click, для показа слайд-шоу достаточно автоматизировать вызов этого метода, что равносильно переодическим щелчкам юзера по этой кнопке.
Для этого и нужен компонент Timer.
В обработчике его события OnTimer, которое будет возникать с заданным тобой в св-ве Interval периодом в мс, как раз и следует вызывать метод Click нужной кнопки.
Осталось только "запустить" этот таймер для показа слайд-шоу.
Для этого нужно установить его св-во Enabled равным True. Останов шоу, соответственно, потребует записи в это св-во значения False.
-
с таймером я все сделала а вот с Click я не поняла
-
я сделала но он выдает ошибку
-
> с Click я не поняла
Что не поняла ?
> он выдает ошибку
Какую ?
-
Блин я начала делать с этим таймером-теперь вообще прога не работает((((((((((я его удалила и опять не работает
-
> Блин я начала делать с этим таймером
Блины с икрой знаю, блины с таймером не знаю)
-
Можно я перешлю вам вы посмотрите?
-
Да ты прямо сюда приводи фрагмены "своего" кода ..
-
unit form_view;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtDlgs, U_Spisok, Menus, frame_image, U_Tree,
ExtCtrls, Buttons, ImgList, ComCtrls,U_ListView;
type
TForm1 = class(TForm);
Frame31: TFrame3;
OpenPictureDialog1: TOpenPictureDialog;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
Image1: TImage;
N6: TMenuItem;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BB_next: TBitBtn;
N1111: TMenuItem;
ImageList1: TImageList;
Button1: TButton;
Button2: TButton;
procedure Button2Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BB_nextClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
List:tstrings;
LoadPicture:string;
implementation
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
begin
Form2.Show;
end;
procedure TForm1.Button5Click(Sender: TObject);
var
path:string;
begin
getdir(1,path);
Frame31.Open_Picture(path+ '\'+ Spisok.ListBox1.Items[Spisok.ListBox1.ItemIndex+1]);
Spisok.ListBox1.ItemIndex:=Spisok.ListBox1.ItemIndex+1;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
list:=TStringList.Create;
end;
procedure TForm1.ListBox1Click(Sender: TObject);
var
path:string;
begin
getdir(1,path);
Frame31.Open_Picture(path+ '\'+ Spisok.ListBox1.Items[Spisok.ListBox1.ItemIndex]);
end;
procedure TForm1.Button4Click(Sender: TObject);
var
path:string;
begin
getdir(1,path);
Frame31.Open_Picture(path+ '\'+ Spisok.ListBox1.Items[Spisok.ListBox1.ItemIndex-1]);
Spisok.ListBox1.ItemIndex:=Spisok.ListBox1.ItemIndex-1;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
Spisok.Show;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
if N3.Checked then
Spisok.Show
else
Spisok.Close;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
if N4.Checked then
Tree.Show
else
Tree.Close;
end;
procedure TForm1.N5Click(Sender: TObject);
var
i:integer;
begin
if OpenPictureDialog1.Execute then
begin
Frame31.Open_Picture(OpenPictureDialog1.FileName);
Frame31.Zap_massiva(list);
with Spisok.ListBox1 do begin
Items.Assign(List);
ItemIndex := 0;
end;
for i:=0 to Spisok.ListBox1.Count-1 do
begin
with Form2.ListView1.Items.add do
begin
caption :=Spisok.ListBox1.Items[i];
imageindex := 0;
end;
end;
end;
end;
procedure TForm1.N6Click(Sender: TObject);
begin
close;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Frame31.Resize_Down(100);
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
Frame31.Resize_Up(100);
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
var
path:string;
begin
getdir(1,path);
Frame31.Open_Picture(path+ '\'+ Spisok.ListBox1.Items[Spisok.ListBox1.ItemIndex-1]);
Spisok.ListBox1.ItemIndex:=Spisok.ListBox1.ItemIndex-1;
end;
procedure TForm1.BB_nextClick(Sender: TObject);
var
path:string;
begin
getdir(1,path);
Frame31.Open_Picture(path+ '\'+ Spisok.ListBox1.Items[Spisok.ListBox1.ItemIndex+1]);
Spisok.ListBox1.ItemIndex:=Spisok.ListBox1.ItemIndex+1;
end;
end.
-
unit frame_image;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls;
type
TFrame3 = class(TFrame)
Image1: TImage;
private
{ Private declarations }
public
{ Public declarations }
procedure Resize_Up(X:integer);
procedure Resize_Down(X:integer);
procedure scandir(startdir: string; mask:string; list:tstrings);
procedure Center();
procedure Zap_massiva(List:tstrings);
procedure Open_Picture(FileName:string);
end;
implementation
{$R *.dfm}
//Поиск в текущей директории по заданной маске всех файлов и заполнение им массива List
procedure TFrame3.scandir(startdir: string; mask:string; list:tstrings);
var searchrec : tsearchrec;
begin
if mask = '' then mask := '*.*';
if startdir[length(startdir)] <> '' then startdir := startdir + '';
if findfirst(startdir+mask, faanyfile, searchrec) = 0 then
begin
repeat
application.processmessages;
if (searchrec.attr and fadirectory) <> fadirectory then
list.add(searchrec.name)
else if
(searchrec.name <> '..') and (searchrec.name <> '.') then
begin
list.add(searchrec.name + '');
scandir(startdir + searchrec.name + '',mask,list);
end;
until
findnext(searchrec) <> 0;
findclose(searchrec);
end;
end;
procedure TFrame3.Resize_Up(X:integer);
begin
Image1.Height:=Image1.Height+X;
Image1.Width:=Image1.Width+X;
Center();
end;
procedure TFrame3.Open_Picture(FileName:string);
begin
Image1.Picture.LoadFromFile(FileName);
end;
// Процедура заполнения массива названиями картинок из текущего каталога
procedure TFrame3.Zap_massiva(List:tstrings);
var
path,disc:string;
i:integer;
begin
getdir(0,path);
disc:='';
for i:=1 to 2 do
disc:=disc+path[i];
List.Clear;
scandir(disc,'*.jpg',List);
scandir(disc,'*.jpeg',List);
scandir(disc,'*.ico',List);
scandir(disc,'*.jpg',List);
scandir(disc,'*.bmp',List);
end;
//Уменьшение размера картинки на Х
procedure TFrame3.Resize_Down(X:integer);
begin
Image1.Height:=Image1.Height-X;
Image1.Width:=Image1.Width-X;
//Вызов процедуры установки картинки в центр окна
Center();
end;
// Процедура установки картинки в центр окна
procedure TFrame3.Center();
begin
Image1.Left:=trunc(height/2-Image1.height/2);
Image1.top:=trunc(height/2-Image1.height/2)
end;
end.
-
Так..
И в этом коде не работает ?
-
да
-
Что конкретно в этом коде не работает ?
-
The FormCreate method referenced by Form1
-
> The FormCreate method referenced by Form1
Это что ?
-
ошибку такую выдает
-
> ошибку такую выдает
А где в этой фразе слово "ошибка" ? Не вижу .. Приводи фразу дословно, а не огрызок ..
И если это ошибка, то где, в какой момент и при каких обстоятельствах ты ее наблюдаешь ?
-
The FormCreate method referenced by Form1.OnCreate does not exist.Remove the reference?Выдает когда пытаюсь закрыть проект
-
и вообще прога даже не запускается-т.е. Run не работает
-
> does not exist
А он, как видишь, существует.
Выбери его явно в Инспекторе объектов в выпадающем списке выбора обработчиков события OnCreate формы Form1
> Run не работает
Неужели прямо вот так и говорит "Не работаю" ?
-
ну он серый а не зеленый как когда запускается
-
> Вера (24.12.08 16:24) [26]
>
> Можно я перешлю вам вы посмотрите?
Предлагаю вместе с этой бедой переслать, ну скажем, 1000 WMR, чтобы тебя совесть не мучила)
Назад получишь отремонтированный проект с работающим слайд-шоу)
-
Что такое WMR?
-
Рублевая у.е. в системе электронной расчетно-платежной системы WebMoney)
-
Яндекс.Деньги тоже сойдет)
-
т.е. 1000руб?а из рук в руки никак?потому что у меня нет этой системы
-
ты где живёшь?
-
Из рук в руки ты будешь с преподом расчитываться, когда завалишь курсовой)
А завести и пополнить свой счет в WebMoney или Яндекс.Деньгах - дело максимум суток)
-
а когда ты мне эту прогу сделаешь?
-
Думаю, с момента как я обнаружу в своем WMR-кошельке означенную сумму, полчаса будет вполне достаточно привести эту беду в порядок)
-
а где гарантия что ты меня не кинешЬ?
-
Гарантии раздает только Аллах, и то по большим праздникам)
-
понятно
-
спасибо за услуги.Ищи таких дураков в другом месте.
-
Ты высылаешь проект, я его привожу в порядок, добавляю слад-шоу и высылаю тебе демо без исходников. Если все устраивает, ты перечисляешь сумму и тут же получаешь исходники)
-
Наше дело предложить - ваше отказаться)
А курсач-то тепм временем дамокловым мечем все ближе и ближе к шее)
-
Во-первых,мне курсовую надо сделать сегодня и сдать завтра.А чтобы создать эту систему и пополнить счет нужен как ты говоришь день...
-
тем более я не знаю-создать то создадим-а вот пополнить может стать проблемой
-
положатся ли деньги в банкомате
-
> положатся ли деньги в банкомате
Ты еще банкомату задай такой же вопрос как в [50]
А времечко-то идет)
А ты по-прежнему ни в зуб ногой)
И завтра тебе на Голгофу, а не мне)
Так кто из нас на поле дураков, а ?
-
> надо сделать сегодня и сдать завтра
А какого ж хрена ты весь семестр делала, а ?
Хвост задрав дурака валяла вместо того чтобы учиться, так ведь ?)
И теперь ищешь лихорадочно, где бы нахалявку да по-быстрому дыры залатать да прикрыть свою безалаберность, так ведь ?
-
И куда исчез тот "помощник", тот самый работник той самой богадельни, что якобы "помог" тебе, так что ты ни шута не понимаешь, что и как у тебя происходит в проекте, который ты якобы должна представить завтра готовым ?