Показать сообщение отдельно
  #2  
Старый 25.02.2013, 00:18
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,100
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от lostbananan
Написал такой код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  i : integer;
begin
  // Нове вікно? з "даними тестування" + посил на принтер
  beep();
  Timer1.Destroy;
  for i := 1 to 11 do
  begin
    TProgressBar(FindComponent('ProgressBar' + IntToStr(pBar))).Visible := false;
  end;
end;
Первая же итерация цикла вызывает Аксес виолатион...
Почему и что неправильно я написал?
И еще вопрос как проверить существует ли Timer1, например?

Проверяй результат FindComponent на Nil. Ну и что такое pBar, мне кажется, что там должно быть I.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  i : integer;
  pb : TProgressBar;
begin
  // Нове вікно? з "даними тестування" + посил на принтер
  beep();
  Timer1.Destroy;
  for i := 1 to 11 do
  begin
    pb := TProgressBar(FindComponent('ProgressBar' + IntToStr(I));
    If pb <> Nil Then pb.Visible := false;
  end;
end;

Для Timer1 тоже самое
Код:
var
  tm : TTimer;
begin
  tm := TTimer(FindComponent('Timer1'));
  If tm <> Nil Then ...
Ответить с цитированием