Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 744

/ вопрос решён /

Здравствуйте! У меня такой вопрос, программа должна из файла-ресурса загружать картинки (похоже на слайд шоу) скажите, как подгружать картинки?и что бы потом можно вернутся на предыдущую картинку нажатием на кнопку

Примечание #1 (13 ноября 2011, 13:14):
Файл Ресурс с изображением

casio Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: casio (статус: Посетитель)
Вопрос отправлен: 13 ноября 2011, 13:08
Состояние вопроса: решён, ответов: 0.


Мини-форум вопроса

Всего сообщений: 7; последнее сообщение — 13 ноября 2011, 18:25; участников в обсуждении: 3.
min@y™

min@y™ (статус: Доктор наук), 13 ноября 2011, 13:19 [#1]:

Создай массив имён ресурсов, запихай его в TStringList и заведи глобальную переменную (Integer) - номер картинки в этом списке. Дальше объяснять (про TResourceStream и т.п.), или сам допрёшь?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
casio

casio (статус: Посетитель), 13 ноября 2011, 13:29 [#2]:

у меня на форме расположен TImage,добавляю с помощью Timer, 1ю картинку я показываю с отчетом времени в 10 секунд,
var id:byte;
Form1.Create
begin
id:=1;
Panel1.BringToFront;
Timer10sec.Enabled:=True;
if id = 1 then begin
  h := LoadLibrary('Img.DLL');
try
 if h <> 0 then
    begin
    png := TPNGObject.Create;
    png.LoadFromResourceName(h, 'img1');
// загружаю 1ю картинку
    Image1.Picture.Assign(png);
    png.Free;
    end
    else
    begin
      ShowMessage('Load Resource DLL FAILED!');
    end;
finally
 FreeLibrary(h);
end;
 
Timer10sec
begin
a:=a-1; //Отнимаем по секунде
 sLabel2.Caption:= IntToStr(a);
  // Если время закончилось, то останавливаем таймер и показываем сообщение.
  if a = 0 then
  begin
    Macintosh.KeyPreview := False;
    Timer10sec.Enabled:=false;
TimerImg.enabled:=True; //отаймер отвечает за загрузку изображений


потом должны загрузится еще 5(TimerImg):
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;
...... и т.д. до 5

останавливаю таймер и работаю с кнопкой, вперед назад, подгружаются по 1картинки или вперед или назад. как это можно проще сделать?
min@y™

min@y™ (статус: Доктор наук), 13 ноября 2011, 13:42 [#3]:

Цитата (casio):

подгружаются по 1картинки или вперед или назад. как это можно проще сделать?

Ну я ж тебе выше написал.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
casio

casio (статус: Посетитель), 13 ноября 2011, 13:54 [#4]:

min@y™: Дальше объяснять (про TResourceStream и т.п.), или сам допрёшь?

Если можно объясни пожалуйста :) (с примером если можно)
casio

casio (статус: Посетитель), 13 ноября 2011, 15:08 [#5]:

все я разобрался СПАСИБО за подсказку
min@y™

min@y™ (статус: Доктор наук), 13 ноября 2011, 15:51 [#6]:

Цитата (casio):

все я разобрался СПАСИБО за подсказку

Ай молодца!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
bugmenot

bugmenot (статус: 3-ий класс), 13 ноября 2011, 18:25 [#7]:

и зачем три раза одинаковый код раскопипастил?
виконання програми розпочинається з того самого мiсця, де призупинилося.

18 ноября 2011, 18:09: Статус вопроса изменён на решённый (изменил автор вопроса — casio)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:55
Выполнено за 0.03 сек.