Перейти к содержанию
Fire Monkey от А до Я

Владимир Невзоров

Пользователи
  • Постов

    2
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Владимир Невзоров

  1. Столкнулся с такой вот проблемой, при динамическом создании компонент:

    объявляю глобальную переменную rect:array of TRectangle;

    устанавливаю setLength(rect,0);

    где вызываю компоненты пишу

    
     if form1.FindComponent('DN1')<>nil then showmessage('Не удалили');
      for i := 0 to 6 do begin
        setLength(rect, i+1);
     	rect[i]:=TRectangle.Create(form1);
     	rect[i].Parent:=form1.rt0; 
     ...
     	rect[i].Name:='DN'+inttostr(i+1);
     	rect[i].OnClick:=form1.RectangleClick;
      end;

    в процедуре удаления компонент пишу:

    for i:=0 to Length(rect)-1 do begin
    rect[i].Free;
    rect[i]:=nil;
    freeandnil(rect[i]);
     end;
    setLength(rect,0);

    так вот, после первого вызова все нормально выводится сообщение 'Не удалили' не появляется, onclick срабатывает. При попытке удалить компоненты выходит сообщение 'Не удалили' и при втором вызове создания компонентов на телефоне выходит сообщение "A component named DN1 already exists". 

    Хотя в windows удаляются компоненты правильно и ошибки не выходят.

    Может это баг такой, но уже ни знаю что и делать.

×
×
  • Создать...