Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка после воспроизведения mp3-мелодий 
:(
    Опции темы
Mitiai2
Дата 6.10.2007, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 6.10.2007

Репутация: нет
Всего: нет



Всем привет! 
В программе часто вызываю: 

WMP_Music.URL:=<полный путь к mp3-песне>; 
WMP_Music.controls.play; 


WMP_Music - ActiveX компонент Windowa Media Player 

Почему при выходе из программы почти всегда выводяться сообщения об ошибке (иногда почему то нет): 

Access violation at address 00469E29 in module 'MobileCollection.exe'. Read of address 00000484 

закрываю это окно, несколько раз появляется такоеже, потом: 

Инструкция по адресу "0x004812e2" обратилась к памяти по адресу "0x00bf4a5d". Память не может быть "read" 

закрываю это сообщение и появляется следующее: 

Runtime error 216 at 0041FC4E 


В чем может быть проблема?

PM MAIL   Вверх
MetalFan
Дата 6.10.2007, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 5
Всего: 128



красивые адреса ты нам написал) очень интересненько!
что-то у тебя в программе лезет не туда в памяти... что тут еще сказать...


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Alix
Дата 6.10.2007, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


L45
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb

Репутация: 1
Всего: 23



Возможно не освобождаешь память. Возможно кривой импорт ActiveX (ни за что бы не поверил, что такое бывает, если б сам не убедился на примере ms agent'a под D7).


--------------------
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой
High tech. Low live. (с) Gardner Dozois
PM MAIL ICQ Skype   Вверх
Mitiai2
Дата 6.10.2007, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 6.10.2007

Репутация: нет
Всего: нет



Буду программу гонять MemProof-ом.

Спасибо
PM MAIL   Вверх
Mitiai2
Дата 10.10.2007, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 6.10.2007

Репутация: нет
Всего: нет



Ошибка оказывается возникает в модуле Forms.pas !!!!:

ЗДЕСЬ: if FControl.FAutoScroll then

Код

procedure TControlScrollBar.CalcAutoRange;
var
  I: Integer;
  NewRange, AlignMargin: Integer;

  procedure ProcessHorz(Control: TControl);
  begin
    if Control.Visible then
      case Control.Align of
        alLeft, alNone:
          if (Control.Align = alLeft) or (Control.Anchors * [akLeft, akRight] = [akLeft]) then
            NewRange := Max(NewRange, Position + Control.Left + Control.Width);
        alRight: Inc(AlignMargin, Control.Width);
      end;
  end;

  procedure ProcessVert(Control: TControl);
  begin
    if Control.Visible then
      case Control.Align of
        alTop, alNone:
          if (Control.Align = alTop) or (Control.Anchors * [akTop, akBottom] = [akTop]) then
            NewRange := Max(NewRange, Position + Control.Top + Control.Height);
        alBottom: Inc(AlignMargin, Control.Height);
      end;
  end;

begin
[U]  if FControl.FAutoScroll then[/U]
  begin
    if FControl.AutoScrollEnabled then
    begin
      NewRange := 0;
      AlignMargin := 0;
      for I := 0 to FControl.ControlCount - 1 do
        if Kind = sbHorizontal then
          ProcessHorz(FControl.Controls[I]) else
          ProcessVert(FControl.Controls[I]);
      DoSetRange(NewRange + AlignMargin + Margin);
    end
    else DoSetRange(0);
  end;
end;


TControlScrollBar.CalcAutoRange вызывается в:


Код

procedure TScrollingWinControl.WMSize(var Message: TWMSize);
var
  NewState: TWindowState;
begin
  Inc(FAutoRangeCount);
  try
    inherited;
    NewState := wsNormal;
    case Message.SizeType of
      SIZENORMAL: NewState := wsNormal;
      SIZEICONIC: NewState := wsMinimized;
      SIZEFULLSCREEN: NewState := wsMaximized;
    end;
    Resizing(NewState);
  finally
    Dec(FAutoRangeCount);
  end;
  FUpdatingScrollBars := True;
  try
    [U]CalcAutoRange;[/U]
  finally
    FUpdatingScrollBars := False;
  end;
  if FHorzScrollBar.Visible or FVertScrollBar.Visible then
    UpdateScrollBars;
end;



Это сообщение отредактировал(а) Alexeis - 10.10.2007, 12:08
PM MAIL   Вверх
Alexeis
Дата 10.10.2007, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 55
Всего: 459



Mitiai2, очевидно объект не создан или где-то уничтожается. Нужно искать где это происходит.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Mitiai2
Дата 21.10.2007, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 6.10.2007

Репутация: нет
Всего: нет



Вся проблема была оказывается в: 

Всегда было: TimerEstimate.enabled=true 



Код

procedure TFmMelody.TimerEstimateTimer(Sender: TObject); 
begin 
   if LbMelody.Count*(LbMelody.ItemIndex+1)<>0 then 
     Begin 
      TimeOfPreListen:=TimeOfPreListen+Round(TimerEstimate.Interval/1000); // Увеличиваем время затраченное на просмотр. 
      LbEstimate.Caption:='Просмотрено '+IntToStr(Round((LbMelody.ItemIndex+1)*100/LbMelody.Count))+'% мелодий. Вы ещё будете просматривать и прослушивать '+GetLengthOfMelodyInMinSec(Round(TimeOfPreListen*LbMelody.Count/(LbMelody.ItemIndex+1)-TimeOfPreListen))+' (оценочно), прослушиваете: '+GetLengthOfMelodyInMinSec(TimeOfPreListen); 
     End; 
end; 




теперь оценку времени оставшегося до окончания прослушивания списка мелодий включаю только при Form.Activate, а выключаю при Form.FormCloseQuery
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0528 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.