Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите доработать прогу 
:(
    Опции темы
Gerbariy
  Дата 29.8.2006, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 14.7.2006

Репутация: нет
Всего: нет



у меня есть программа для просмотра изображений
её форма:http://www.slil.ru/23067643
её текст:

Код

unit shpic_;

interface

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

type
  TForm1 = class(TForm)
    Image1: TImage;
    Button1: TButton;
    Label1: TLabel;
    Edit1: TEdit;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    GroupBox1: TGroupBox;
    procedure Button1Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure FormCreate(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);


    procedure FirstPicture;
    procedure NextPicture;
    procedure ScaleImage;

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

var
  Form1: TForm1;
  iw,ih: integer;

implementation

{$R *.DFM}
uses
     jpeg;


var
  aSearchRec : TSearchRec;

  aPath: String[128];
  aFile: String[128];
  aMask: String[5];
  n: integer = 0;

procedure TForm1.FormCreate(Sender: TObject);
begin
    Image1.AutoSize := False;
    Image1.Stretch := True;


    iw := Image1.Width;
    ih := image1.Height;

    Button1.Enabled := False;
    FirstPicture;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
    if Key = #13 then
        if DirectoryExists(Edit1.Text)
            then FirstPicture
            else ShowMessage('Êàòàëîã '+
            Edit1.Text +' óêàçàí íåâåðíî.');
end;


procedure TForm1.FirstPicture;
var
   r : integer;
begin
   aPath := Edit1.Text;
   if aPath[Length(aPath)] <> '\'
        then aPath := aPath + '\';
   if RadioButton1.Checked
        then aMask := '*.bmp'
        else aMask := '*.jpg';
   r := FindFirst(aPath + aMask, faAnyFile, aSearchRec);
   if r = 0 then
      begin
          aFile := aPath + aSearchRec.Name;
          Image1.Picture.LoadFromFile(aFile);
          ScaleImage;
          r := FindNext(aSearchRec);
          if r = 0 then
             Button1.Enabled := True;
      end;
end;


Procedure TForm1.NextPicture();
var
   r : integer;
begin
   aFile := aPath + aSearchRec.Name;
   Image1.Picture.LoadFromFile(aFile);
   ScaleImage;


   r := FindNext(aSearchRec);
   if r <> 0
      then
         Button1.Enabled := False;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
    NextPicture;
end;



Procedure Tform1.ScaleImage;
var
    pw, ph : integer;
    scaleX, scaleY : real;
    scale : real;
begin


      pw := Image1.Picture.Width;
      ph := Image1.Picture.Height;
      if pw > iw
          then scaleX := iw/pw
          else scaleX := 1;
      if ph > ih
          then scaleY := ih/ph
          else scaleY := 1;


      if  scaleX < scaleY
          then scale := scaleX
          else scale := scaleY;


      Image1.Height := Round(Image1.Picture.Height*scale);
      Image1.Width := Round(Image1.Picture.Width*scale);


end;


procedure TForm1.RadioButton1Click(Sender: TObject);
begin
    FirstPicture;
end;


procedure TForm1.RadioButton2Click(Sender: TObject);
begin
    FirstPicture;
end;

end.


нужно добавить меню(файл; о программе) и чтобы фото можно было листать не только кнопкой ,но и автоматически с задержкой. Помогите плиз!Заранее спасибо!
PM MAIL   Вверх
Alexeis
Дата 29.8.2006, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



В delphi 7 меню находится на палитре стандарт, второй компонент слева.
Для показа нужно будет взять таймер с палитры System (часики) и бросить его на форму. Для запуска таймра устанавливаем 
Timer1.enabled := True;
для остановки 
Timer1.enabled := false;
обработчик события таймера (который будет вызыватся каждую секунду или через столько сколько будет установлено в timer1.interval) легко создать двойным кликом по форме.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0421 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.