-
У этой кнопки есть метод 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 не работает
Неужели прямо вот так и говорит "Не работаю" ?
|