|
Вопрос # 5 744/ вопрос решён / |
|
Здравствуйте! У меня такой вопрос, программа должна из файла-ресурса загружать картинки (похоже на слайд шоу) скажите, как подгружать картинки?и что бы потом можно вернутся на предыдущую картинку нажатием на кнопку
Примечание #1 (13 ноября 2011, 13:14): Файл Ресурс с изображением
 |
Вопрос задал: casio (статус: Посетитель)
Вопрос отправлен: 13 ноября 2011, 13:08
Состояние вопроса: решён, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 7; последнее сообщение — 13 ноября 2011, 18:25; участников в обсуждении: 3.
|
min@y™ (статус: Доктор наук), 13 ноября 2011, 13:19 [#1]:
Создай массив имён ресурсов, запихай его в TStringList и заведи глобальную переменную (Integer) - номер картинки в этом списке. Дальше объяснять (про TResourceStream и т.п.), или сам допрёшь?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
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™ (статус: Доктор наук), 13 ноября 2011, 13:42 [#3]:
Цитата (casio):
подгружаются по 1картинки или вперед или назад. как это можно проще сделать?
Ну я ж тебе выше написал.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
casio (статус: Посетитель), 13 ноября 2011, 13:54 [#4]:
min@y™: Дальше объяснять (про TResourceStream и т.п.), или сам допрёшь?
Если можно объясни пожалуйста (с примером если можно)
|
|
casio (статус: Посетитель), 13 ноября 2011, 15:08 [#5]:
все я разобрался СПАСИБО за подсказку
|
|
min@y™ (статус: Доктор наук), 13 ноября 2011, 15:51 [#6]:
Цитата (casio):
все я разобрался СПАСИБО за подсказку
Ай молодца!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
bugmenot (статус: 3-ий класс), 13 ноября 2011, 18:25 [#7]:
и зачем три раза одинаковый код раскопипастил?
виконання програми розпочинається з того самого мiсця, де призупинилося.
|
18 ноября 2011, 18:09: Статус вопроса изменён на решённый (изменил автор вопроса — casio)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|