Конференция "Начинающим" » Слайд шоу не работает [D2005, XP]
 
  • Ramzes001 © (31.03.08 11:09) [0]
    Всем доброго времени суток!
    Почти доделал программу для просмотра изображений и записи на них звука, остался последний штрих: слайд шоу. Но тут меня поджидал сюрприз: хотя звук воспроизводится, заголовок окна меняется, но сами картинки не показываются Там всегото две переменные в цикле, а всё равно глюк(((
    Помогите кто чем может, я реально запутался((((( Уже кровавую оскомену набил от этого кода(((((((
     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]
    РУССКИЙ УЧИТЬ
  • Ramzes001 © (31.03.08 11:17) [2]

    > <Цитата>
    >
    >
    > Игорь Шевченко ©   (31.03.08 11:12) [1]
    > РУССКИЙ УЧИТЬ


    А кроме него?
  • Игорь Шевченко © (31.03.08 11:19) [3]
    А кроме него приводить полный код. С исправленными грамматическими ошибками
  • Kolan © (31.03.08 11:22) [4]
    > две переменные в цикле,

    Цикла не видно.
  • Denis__ © (31.03.08 13:11) [5]
    Удалено модератором
  • Ramzes001 © (31.03.08 20:35) [6]
    Приношу свои извинения за издевательство над русским языком, вот полный код функции:
    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;


    Помогите бедному ламеру(((((((
  • Сергей М. © (31.03.08 20:41) [7]
    Ты еще умудрился надругаться над английсиким и над Паскалем.
  • Ramzes001 © (31.03.08 20:45) [8]

    > Ты еще умудрился надругаться над английсиким и над Паскалем.


    Так скажите, что я должен сделать, чтоб Великий Бог Паскаля меня простил?
  • Palladin © (31.03.08 20:47) [9]
    Нууууу... я думаю... не страдать фигней, а использовать PowerPoint... куда круче и эффектней... он своих денег стоит....
  • Сергей М. © (31.03.08 20:49) [10]

    > Ramzes001 ©   (31.03.08 20:45) [8]


    Один из грехов он тебе отпустит, если ты не будешь фривольно манипулировать счетчиком итераций for-цикла.
  • Ramzes001 © (31.03.08 20:57) [11]

    > Один из грехов он тебе отпустит, если ты не будешь фривольно
    > манипулировать счетчиком итераций for-цикла.


    Проблема в том, что счётчик работает нормально, заголовки формы меняются, звук воспроизводится, но фото не грузится.


    > Нууууу... я думаю... не страдать фигней, а использовать
    > PowerPoint... куда круче и эффектней... он своих денег стоит.
    > ...

    Блин, я месяц эту прогу писал, а слайд шоу-это всего лишь примочка.
  • Сергей М. © (31.03.08 21:07) [12]

    > Проблема в том, что счётчик работает нормально


    ПРоблема в том, что ты не знаешь логики работы for-цикла.
    И не надо болтать ерундой)
  • Ramzes001 © (31.03.08 21:16) [13]
    А в чём глюк? С этим циклом работаю давно, таких проблем не было, объясните пожалуйста.
  • Сергей М. © (31.03.08 21:19) [14]
  • {RASkov} © (31.03.08 21:23) [15]
    > [13] Ramzes001 ©   (31.03.08 21:16)

    А вместо prokrut, в цикле, использовать переменную цикла(I) - не сообразил?
    Впрочем это не отвечает на твой вопрос...
    Объясни - зачем каждую итеррацию цикла выстовлять состояние формы?
    Это тоже не ответ...
    Код бредовый.... прямой ответ - не поможет :(
  • Ramzes001 © (31.03.08 21:41) [16]
    Сергей, ошибка не в этом, насколько я понял, Вы имели ввиду то, что
    не следует изменять значение управляющей переменной внутри цикла. Но изменив код на следующий:
    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;

    Ситуация осталась неизменной, я уверен, что проблема при отображении картинки.
  • {RASkov} © (31.03.08 21:45) [17]
    > Объясни - зачем каждую итеррацию цикла выстовлять состояние формы?

    Собственно это не ошибка и ничего страшного не произойдет, об этом позаботились более умные программисты в сеттерах свойств...

    > но сами картинки не показываются

    сообщение WM_PAINT мало того, что имеет низкий приоритет, но и обрабатывается только последнее из очереди...
  • {RASkov} © (31.03.08 21:46) [18]
    > [16] Ramzes001 ©   (31.03.08 21:41)

    Пипец :(
  • Ramzes001 © (31.03.08 21:48) [19]
    {RASkov} Ну что значит "код бредовый"? Всё работает, кроме непосредственно згрузки самой картинки, да и она грузится, но только последняя и после конца выполнения цикла. Я не говорю, что это эталон, но ведь почти всё работает!
 
Конференция "Начинающим" » Слайд шоу не работает [D2005, XP]
Есть новые Нет новых   [134434   +26][b:0][p:0.003]