Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.06.2010, 18:55
sheffdop sheffdop вне форума
Прохожий
 
Регистрация: 30.05.2010
Сообщения: 10
Репутация: 10
По умолчанию код ведет себя интересно

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;                   //Переменная для цикла i
  ArPanel: array of TControl;   //Динамический массив TControl
  Vis: boolean;                 //Переменная, показывающая скрытость или видимость
  r: integer;                   //Переменная, содержащая рандомное значение
begin

  //Цикл для нахождения и помещения в дин. массив TControl-ов
  for i := 0 to Form1.ControlCount -1 do
  if Form1.Controls[i] is TPanel then
    begin
      SetLength(ArPanel, High(ArPanel) + 2);      //Установка размера массива большего на 1
      ArPanel[High(ArPanel)] := Form1.Controls[i];
    end;

  Randomize;

  //Фрагмент нужен для того, чтобы не показывать панел второй раз
  Repeat
    r := Random(High(ArPanel) - Low(ArPanel) +1);
    Vis := ArPanel[r].Visible;
    ArPanel[r].Show;
  Until not Vis ;

end;
этот код перебирает в произвольном порядке все панели. и все замечательно, если панели раскиданы по форме. а вот если панели накладывать одну на другую, то почему-то работает не корректно... с чем может быть это связано?
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:50.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025