-
Всем доброго времени суток! Почти доделал программу для просмотра изображений и записи на них звука, остался последний штрих: слайд шоу. Но тут меня поджидал сюрприз: хотя звук воспроизводится, заголовок окна меняется, но сами картинки не показываются Там всегото две переменные в цикле, а всё равно глюк((( Помогите кто чем может, я реально запутался((((( Уже кровавую оскомену набил от этого кода((((((( with Image1.Picture do
begin
LoadFromFile(filepach + guber[prokrut]);
WindowState := wsMaximized;
Caption:=guber[prokrut];
GetMem(PCh,Length(filepach + guber[prokrut] + '.wav')+1);
StrPCopy(PCh,filepach + guber[prokrut] + '.wav');
PlaySound(PCh,0, SND_FILENAME or SND_SYNC);
prokrut:=prokrut+1;
FreeMem(PCh)
end;
end; Заранее спасибо!
-
РУССКИЙ УЧИТЬ
-
> <Цитата> > > > Игорь Шевченко © (31.03.08 11:12) [1] > РУССКИЙ УЧИТЬ
А кроме него?
-
А кроме него приводить полный код. С исправленными грамматическими ошибками
-
> две переменные в цикле,
Цикла не видно.
-
Удалено модератором
-
Приношу свои извинения за издевательство над русским языком, вот полный код функции: procedure TformMain.TplayClick(Sender: TObject);
var
i: word;
PCh: Pchar;
begin
for I :=prokrut to neve do
begin
with Image1.Picture do
begin
LoadFromFile(filepach + guber[prokrut]);
WindowState := wsMaximized;
Caption:=guber[prokrut];
GetMem(PCh,Length(filepach + guber[prokrut] + '.wav')+1);
StrPCopy(PCh,filepach + guber[prokrut] + '.wav');
PlaySound(PCh,0, SND_FILENAME or SND_SYNC);
prokrut:=prokrut+1;
FreeMem(PCh)
end;
end;
end; Помогите бедному ламеру(((((((
-
Ты еще умудрился надругаться над английсиким и над Паскалем.
-
> Ты еще умудрился надругаться над английсиким и над Паскалем.
Так скажите, что я должен сделать, чтоб Великий Бог Паскаля меня простил?
-
Нууууу... я думаю... не страдать фигней, а использовать PowerPoint... куда круче и эффектней... он своих денег стоит....
-
> Ramzes001 © (31.03.08 20:45) [8]
Один из грехов он тебе отпустит, если ты не будешь фривольно манипулировать счетчиком итераций for-цикла.
-
> Один из грехов он тебе отпустит, если ты не будешь фривольно > манипулировать счетчиком итераций for-цикла.
Проблема в том, что счётчик работает нормально, заголовки формы меняются, звук воспроизводится, но фото не грузится.
> Нууууу... я думаю... не страдать фигней, а использовать > PowerPoint... куда круче и эффектней... он своих денег стоит. > ...
Блин, я месяц эту прогу писал, а слайд шоу-это всего лишь примочка.
-
> Проблема в том, что счётчик работает нормально
ПРоблема в том, что ты не знаешь логики работы for-цикла. И не надо болтать ерундой)
-
А в чём глюк? С этим циклом работаю давно, таких проблем не было, объясните пожалуйста.
-
-
> [13] Ramzes001 © (31.03.08 21:16)
А вместо prokrut, в цикле, использовать переменную цикла(I) - не сообразил? Впрочем это не отвечает на твой вопрос... Объясни - зачем каждую итеррацию цикла выстовлять состояние формы? Это тоже не ответ... Код бредовый.... прямой ответ - не поможет :(
-
Сергей, ошибка не в этом, насколько я понял, Вы имели ввиду то, что не следует изменять значение управляющей переменной внутри цикла. Но изменив код на следующий: begin
megaguban:= prokrut;
for I :=megaguban to neve do
begin
with Image1.Picture do
begin
LoadFromFile(filepach + guber[prokrut]);
WindowState := wsMaximized;
Caption:=guber[prokrut];
GetMem(PCh,Length(filepach + guber[prokrut] + '.wav')+1);
StrPCopy(PCh,filepach + guber[prokrut] + '.wav');
PlaySound(PCh,0, SND_FILENAME or SND_SYNC);
prokrut:=prokrut+1;
FreeMem(PCh)
end;
end;
end; Ситуация осталась неизменной, я уверен, что проблема при отображении картинки.
-
> Объясни - зачем каждую итеррацию цикла выстовлять состояние формы?
Собственно это не ошибка и ничего страшного не произойдет, об этом позаботились более умные программисты в сеттерах свойств...
> но сами картинки не показываются
сообщение WM_PAINT мало того, что имеет низкий приоритет, но и обрабатывается только последнее из очереди...
-
> [16] Ramzes001 © (31.03.08 21:41)
Пипец :(
-
{RASkov} Ну что значит "код бредовый"? Всё работает, кроме непосредственно згрузки самой картинки, да и она грузится, но только последняя и после конца выполнения цикла. Я не говорю, что это эталон, но ведь почти всё работает!
|