Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2011, 01:39   #1
casio23
Форумчанин
 
Аватар для casio23
 
Регистрация: 29.12.2010
Сообщений: 186
По умолчанию Показ изображение

подскажите как осуществить показ изображений. Есть форма на ней расположен Image1 и пару кнопок с progressbarom,3 timer-a.
картинки расположены в файле-ресурса img.dll (9штук)
1й таймер отвечает за отсчет времени (с 10 до 0);
2й таймер отвечает за загрузку картинок;
3й таймер отвечает за прогрессбар(style=pbstMarquee);
как только запускаю программу загружаю 1е изображение,и запускаю 1й таймер, вот так
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
Start1Click(self);
a:=10;
Timer1.Enabled:=true; //Запускаем таймер1
Timer1.Interval := 2000;
end;

procedure TMacintosh.Timer1Timer(Sender: TObject);
begin
sLabel1.Visible := True;
sLabel2.Visible := True;
Macintosh.KeyPreview := True;
Timer1.Interval := 1000;
 a:=a-1; //Отнимаем по секунде
 sLabel2.Caption:= IntToStr(a);
  // Если время закончилось, то останавливаем таймер и показываем сообщение.
  if a = 0 then
  begin
    Macintosh.KeyPreview := False;
    Timer1.Enabled:=false;
    sLabel1.Visible := False;
    sLabel2.Visible := False;
    sLabel1.Visible := False;
    sLabel2.Visible := False;
    TimerProgram.Interval := 1000;
    TimerProgram.Enabled := True;//2й таймер
  end;
end;

procedure TForm1.Start1Click(Sender: TObject);
begin

id:=1;
Panel1.BringToFront;

if id = 1 then begin
  h := LoadLibrary('Img.DLL');
try
 if h <> 0 then
    begin
    png := TPNGObject.Create;
    png.LoadFromResourceName(h, 'img1');
    Image1.Picture.Assign(png);
    png.Free;
    end
    else
    begin
      ShowMessage('Load Resource DLL FAILED!');
    end;
finally
 FreeLibrary(h);
end;
end;

end;
после того как таймер достигнет 0 запускаю 2й таймер, нужно добавить 6 изображений я добавляю вот так:
casio23 вне форума Ответить с цитированием
Старый 13.11.2011, 01:39   #2
casio23
Форумчанин
 
Аватар для casio23
 
Регистрация: 29.12.2010
Сообщений: 186
По умолчанию

Код:
procedure TForm1.TimerProgramTimer(Sender: TObject);
begin

id:=id+1;

if id = 1 then begin
h := LoadLibrary('Img.DLL');
try
 if h <> 0 then
    begin
    png := TPNGObject.Create;
    Image1.Parent.DoubleBuffered:=True;
    png.LoadFromResourceName(h, 'img1');
    Image1.Picture.Assign(png);
    png.Free;
    end
    else
    begin
      ShowMessage('Load Resource DLL FAILED!');
    end;
finally
 FreeLibrary(h);
end;
end;

if id = 2 then begin //TimerProgram.Enabled := False;

h := LoadLibrary('Img.DLL');
try
 if h <> 0 then
    begin
    Panel2.Parent.DoubleBuffered := True;
    png := TPNGObject.Create;
    png.LoadFromResourceName(h, 'img2');
    Image1.Picture.Assign(png);
    png.Free;
    end
    else
    begin
      ShowMessage('Load Resource DLL FAILED!');
    end;
finally
 FreeLibrary(h);
end;
end;

if id = 3 then begin //TimerProgram.Enabled := False;

h := LoadLibrary('Img.DLL');
try
 if h <> 0 then
    begin
    png := TPNGObject.Create;
    png.LoadFromResourceName(h, 'img3');
    Image1.Picture.Assign(png);
    png.Free;
    end
    else
    begin
      ShowMessage('Load Resource DLL FAILED!');
    end;
finally
 FreeLibrary(h);
end;
end;

if id = 4 then begin //TimerProgram.Enabled := False;

h := LoadLibrary('Img.DLL');
try
 if h <> 0 then
    begin
    png := TPNGObject.Create;
    png.LoadFromResourceName(h, 'img4');
    Image1.Picture.Assign(png);
    png.Free;
    end
    else
    begin
      ShowMessage('Load Resource DLL FAILED!');
    end;
finally
 FreeLibrary(h);
end;
end;

if id = 5 then begin //imerProgram.Enabled := False;

h := LoadLibrary('Img.DLL');
try
 if h <> 0 then
    begin
    png := TPNGObject.Create;
    png.LoadFromResourceName(h, 'img5');
    Image1.Picture.Assign(png);
    png.Free;
    end
    else
    begin
      ShowMessage('Load Resource DLL FAILED!');
    end;
finally
 FreeLibrary(h);
end;
end;

if id = 6 then begin
TimerProgram.Interval := 3000;
Screen.Cursor := crHourGlass;
h := LoadLibrary('Img.DLL');
try
 if h <> 0 then
    begin
    png := TPNGObject.Create;
    png.LoadFromResourceName(h, 'img6');
    Image1.Picture.Assign(png);
    png.Free;
    end
    else
    begin
      ShowMessage('Load Resource DLL FAILED!');
    end;
finally
 FreeLibrary(h);
end;
end;

if id = 7 then begin TimerProgram.Enabled := False;
//TimerProgram.Interval := 2000;
Prodoljit.Visible := False;
Nazad.Visible := False;
Screen.Cursor := crDefault;
sListBox1.Visible := True;
Next1.Visible := True;
sListBox1.Selected[0]:=True;
h := LoadLibrary('Img.DLL');
try
 if h <> 0 then
    begin
    png := TPNGObject.Create;
    png.LoadFromResourceName(h, 'img7');
    Image1.Picture.Assign(png);
    png.Free;
    end
    else
    begin
      ShowMessage('Load Resource DLL FAILED!');
    end;
finally
 FreeLibrary(h);
end;
end;

if id = 8 then begin TimerProgram.Enabled := False;

h := LoadLibrary('Img.DLL');
try
 if h <> 0 then
    begin
    png := TPNGObject.Create;
    png.LoadFromResourceName(h, 'img8');
    Image1.Picture.Assign(png);
    png.Free;
    end
    else
    begin
      ShowMessage('Load Resource DLL FAILED!');
    end;
finally
 FreeLibrary(h);
end;
end;

if id = 9 then begin //TimerProgram.Enabled := False;
h := LoadLibrary('Img.DLL');
Nazad.Visible := True;
Prodoljit.Visible := True;
try
 if h <> 0 then
    begin
    png := TPNGObject.Create;
    png.LoadFromResourceName(h, 'img9');
    Image1.Picture.Assign(png);
    png.Free;
    end
    else
    begin
      ShowMessage('Load Resource DLL FAILED!');
    end;
finally
 FreeLibrary(h);
end;
end;
останавливаю таймер, показываю прогресбар и запускаю 3й таймер
Код:
procedure TForm1.ProgrTimer(Sender: TObject);
begin
AdvProgress1.Position := 0;
i:=i+10;
AdvProgress1.Position:=i;
if i=100 then
Progr.Enabled:=False;
end;

Подскажите как это можно проще сделать?

Как заставить работать прогресс бар (не хочет работать в коде)?
Не работает правильное отображение картинки если вернутся на предыдущую картинку

Код:
id:=6;
TimerProgramTimer(Self);
casio23 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
показ переменного Mpa4Hu PHP 35 14.07.2010 10:36
Показ Form2 на над кнопкой Shouldercannon Общие вопросы Delphi 5 01.06.2010 23:47
показ части изображения TDrive PHP 4 22.07.2009 17:36
Показ части изображения Alex Cones Мультимедиа в Delphi 3 12.06.2009 22:15
Показ картинок, как реализовать. Zeraim Мультимедиа в Delphi 18 21.05.2008 09:29