Конференция "Media" » графика [D7, WinXP]
 
  • Сергей М. © (24.12.08 13:54) [20]
    У этой кнопки есть метод Click, для показа слайд-шоу достаточно автоматизировать вызов этого метода, что равносильно переодическим щелчкам юзера по этой кнопке.

    Для этого и нужен компонент Timer.

    В обработчике его события OnTimer, которое будет возникать с заданным тобой в св-ве Interval периодом в мс, как раз и следует вызывать метод Click нужной кнопки.

    Осталось только "запустить" этот таймер для показа слайд-шоу.
    Для этого нужно установить его св-во Enabled равным True. Останов шоу, соответственно, потребует записи в это св-во значения False.
  • Вера (24.12.08 15:17) [21]
    с таймером я все сделала а вот с Click я не поняла
  • Вера (24.12.08 15:42) [22]
    я сделала но он выдает ошибку
  • Сергей М. © (24.12.08 16:08) [23]

    > с Click я не поняла


    Что не поняла ?


    > он выдает ошибку


    Какую ?
  • Вера (24.12.08 16:19) [24]
    Блин я начала делать с этим таймером-теперь вообще прога не работает((((((((((я его удалила и опять не работает
  • Сергей М. © (24.12.08 16:22) [25]

    > Блин я начала делать с этим таймером


    Блины с икрой знаю, блины с таймером не знаю)
  • Вера (24.12.08 16:24) [26]
    Можно я перешлю вам вы посмотрите?
  • Сергей М. © (24.12.08 16:26) [27]
    Да ты прямо сюда приводи фрагмены "своего" кода ..
  • Вера (24.12.08 16:28) [28]
    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.
  • Вера (24.12.08 16:30) [29]
    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.
  • Сергей М. © (24.12.08 16:32) [30]
    Так..

    И в этом коде не работает ?
  • Вера (24.12.08 16:35) [31]
    да
  • Сергей М. © (24.12.08 16:37) [32]
    Что конкретно в этом коде не работает ?
  • Вера (24.12.08 16:41) [33]
    The FormCreate method referenced by Form1
  • Сергей М. © (24.12.08 16:48) [34]

    > The FormCreate method referenced by Form1


    Это что ?
  • Вера (24.12.08 16:53) [35]
    ошибку такую выдает
  • Сергей М. © (24.12.08 16:56) [36]

    > ошибку такую выдает


    А где в этой фразе слово "ошибка" ? Не вижу .. Приводи фразу дословно, а не огрызок ..

    И если это ошибка, то где, в какой момент и при каких обстоятельствах ты ее наблюдаешь ?
  • Вера (24.12.08 16:59) [37]
    The FormCreate method referenced by Form1.OnCreate does not exist.Remove the reference?Выдает когда пытаюсь закрыть  проект
  • Вера (24.12.08 17:00) [38]
    и вообще прога даже не запускается-т.е. Run не работает
  • Сергей М. © (24.12.08 17:06) [39]

    > does not exist


    А он, как видишь, существует.

    Выбери его явно в Инспекторе объектов в выпадающем списке выбора обработчиков события OnCreate формы Form1


    > Run не работает


    Неужели прямо вот так и говорит "Не работаю" ?
 
Конференция "Media" » графика [D7, WinXP]
Есть новые Нет новых   [134464   +62][b:0][p:0.001]