| 
| 
 | Вопрос # 4 201/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты! Возникла проблема при обработке таймером события Ontimer в составе массива. Постоянно выскакивает ошибка при переходе к этой процедуре. Подскажите пожалуйста что не так? Программа прекрасно работает если массив не создавать, а создать просто 1 таймер.
 Вырезка из кода в приложении. Пожалуйста подскажите в чем проблема?
 Приложение:Переключить в обычный режим type  TForm1 = class(TForm)    MainMenu1: TMainMenu;       procedure Showframes(Sender: TObject);  private   public   end; type  frameset = record   apolosa : array [0 .. 100, 0 .. 100] of tbitmap;     frametimer : Ttimer;end;   var  Form1: TForm1;  polosa : string;     frames : array [0 .. 100] of frameset; //*************************************************************** implementation uses Unit2; {$R *.dfm}  //---------------------------------------------------------------- begin   frames[op].frametimer:=ttimer.Create(form1); frames[op].frametimer.Interval:=200; frames[op].frametimer.Enabled:=false; frames[op].frametimer.OnTimer:= form1.Showframes;   end;//---------------------------------------------------------------- begin       buffering;   frames[op].frametimer.Enabled:=true;end;//----------------------------------------------------------------procedure  Tform1.Showframes(Sender: TObject);begin    end;//----------------------------------------------------------------end. 
|  |   Вопрос задал: ivancheg (статус: Посетитель)Вопрос отправлен: 21 мая 2010, 15:07
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 4; последнее сообщение — 21 мая 2010, 18:53; участников в обсуждении: 2. 
|   | Вадим К (статус: Академик), 21 мая 2010, 15:14 [#1]:а зачем такая странная структура? только по предварительным наброскам она займет не менее 16 мб. 
 Но ошибка ещё в середине процедуры обработки OnTimer - представьте, что все таймеры сработали и зашли туда. А они будут выполняться очень хитро.
 
 Итого - ошибка в дизайне.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | ivancheg (статус: Посетитель), 21 мая 2010, 16:24 [#2]:структура ... ну по идее надо загрузить много полос со спрайтами, спрайты эти находятся как в 1й полосе, так и в матрице [n, m]. После загрузки они должны выводится на экран и покадрово воспроизводить анимацию по таймеру. т.е. задумка была такая что загружаю "полосу", режу ее, воспроизвожу в нужной последовательности и с нужной скоростью. То что проблема в procedure  Tform1.Showframes(Sender: TObject); это понятно, но как это сделать правильно? нельзя же прописать процедуру обработки для каждого таймера ... весь смысл процедуры теряется тогда вообще. 
 Хотя с размером массива возможно погорячился.
 |  
|   | Вадим К (статус: Академик), 21 мая 2010, 16:47 [#3]:таймеров такое кол-во не нужно. Можно обойтись всего одним. Галочка "подтверждения прочтения" - вселенское зло. |  
|   | ivancheg (статус: Посетитель), 21 мая 2010, 18:53 [#4]:ок, спасибо. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |